如何使用腳本快速查看Linux系統(tǒng)信息

如何使用腳本快速查看Linux系統(tǒng)信息

Linux系統(tǒng)很多使用都是使用在服務(wù)器上,登錄以及使用常常都是通過SSH遠(yuǎn)程方式,所以查看Linux系統(tǒng)信息并不是象一些擁有GUI界面系統(tǒng)一樣那么直觀集中。

本教程將指導(dǎo)你通過編寫一個(gè)腳本將Linux系統(tǒng)信息集中呈現(xiàn)出來方式,讓你查看Linux系統(tǒng)信息一目了然,集中方便。

SHELL腳本目標(biāo)

現(xiàn)在我們寫一個(gè) shell 腳本,集中顯示需要的系統(tǒng)信息,需要顯示的Linux系統(tǒng)信息集中為以下幾部分:

  1. 通用系統(tǒng)信息
  2. CPU/內(nèi)存當(dāng)前使用情況
  3. 硬盤使用率超過 80%
  4. 列出系統(tǒng) WWN 詳情
  5. Oracle DB 實(shí)例
  6. 可更新的包

這樣系統(tǒng)的信息基本都可以顯示出來,當(dāng)然如果你需要更詳細(xì)的信息,可以通過修改腳本自行修改實(shí)現(xiàn)。

編寫SHELL腳本獲取Linux系統(tǒng)相關(guān)信息

這里列出了如何獲取Linux系統(tǒng)相關(guān)信息的腳本,主要包括主機(jī)名稱,運(yùn)行時(shí)間,系統(tǒng)版本,內(nèi)核版本等主要Linux系統(tǒng)信息以及相關(guān)CPU,內(nèi)存,磁盤和相應(yīng)Oracle軟件信息,具體參看腳本。

#!/bin/bash
echo -e "-------------------------------System Information----------------------------"
echo -e "Hostname:\t\t"`hostname`
echo -e "uptime:\t\t\t"`uptime | awk '{print $3,$4}' | sed 's/,//'`
echo -e "Manufacturer:\t\t"`cat /sys/class/dmi/id/chassis_vendor`
echo -e "Product Name:\t\t"`cat /sys/class/dmi/id/product_name`
echo -e "Version:\t\t"`cat /sys/class/dmi/id/product_version`
echo -e "Serial Number:\t\t"`cat /sys/class/dmi/id/product_serial`
echo -e "Machine Type:\t\t"`vserver=$(lscpu | grep Hypervisor | wc -l); if [ $vserver -gt 0 ]; then echo "VM"; else echo "Physical"; fi`
echo -e "Operating System:\t"`hostnamectl | grep "Operating System" | cut -d ' ' -f5-`
echo -e "Kernel:\t\t\t"`uname -r`
echo -e "Architecture:\t\t"`arch`
echo -e "Processor Name:\t\t"`awk -F':' '/^model name/ {print $2}' /proc/cpuinfo | uniq | sed -e 's/^[ \t]*//'`
echo -e "Active User:\t\t"`w | cut -d ' ' -f1 | grep -v USER | xargs -n1`
echo -e "System Main IP:\t\t"`hostname -I`
echo ""
echo -e "-------------------------------CPU/Memory Usage------------------------------"
echo -e "Memory Usage:\t"`free | awk '/Mem/{printf("%.2f%"), $3/$2*100}'`
echo -e "Swap Usage:\t"`free | awk '/Swap/{printf("%.2f%"), $3/$2*100}'`
echo -e "CPU Usage:\t"`cat /proc/stat | awk '/cpu/{printf("%.2f%\n"), ($2+$4)*100/($2+$4+$5)}' |  awk '{print $0}' | head -1`
echo ""
echo -e "-------------------------------Disk Usage >80%-------------------------------"
df -Ph | sed s/%//g | awk '{ if($5 > 80) print $0;}'
echo ""
echo -e "-------------------------------For WWN Details-------------------------------"
vserver=$(lscpu | grep Hypervisor | wc -l)
if [ $vserver -gt 0 ]
then
echo "$(hostname) is a VM"
else
cat /sys/class/fc_host/host?/port_name
fi
echo ""
echo -e "-------------------------------Oracle DB Instances---------------------------"
if id oracle >/dev/null 2>&1; then
/bin/ps -ef|grep pmon
then
else
echo "oracle user does not exist on $(hostname)"
fi
echo ""
if (( $(cat /etc/*-release | grep -w "Oracle|Red Hat|CentOS|Fedora" | wc -l) > 0 ))
then
echo -e "-------------------------------Package Updates-------------------------------"
yum updateinfo summary | grep 'Security|Bugfix|Enhancement'
echo -e "-----------------------------------------------------------------------------"
else
echo -e "-------------------------------Package Updates-------------------------------"
cat /var/lib/update-notifier/updates-available
echo -e "-----------------------------------------------------------------------------"
fi

腳本編寫完成后,將內(nèi)容保存到一個(gè)文件 system-info.sh,之后添加可執(zhí)行權(quán)限:

chmod +x system-info.sh

執(zhí)行腳本,命令行終端會(huì)輸出相應(yīng)信息:

./system-info.sh

將腳本保存到服務(wù)器響應(yīng)目錄,例如這里保存到/opt/shell/system-info.sh,登錄系統(tǒng)后執(zhí)行腳本即可。

配置登錄系統(tǒng)后自動(dòng)執(zhí)行顯示

如果希望自動(dòng)每次登錄 shell 時(shí)把系統(tǒng)信息打印到 terminal,我們可以通過配置實(shí)現(xiàn)這種方法,配置方法如下:

1、當(dāng)腳本準(zhǔn)備好后,把腳本文件的路徑加到 .bash_profile 文件末尾(紅帽系列的系統(tǒng):CentOS、Oracle LinuxFedora):

echo "/opt/shell/system-info.sh" >> ~root/.bash_profile

對(duì)于 Debian 系統(tǒng)的系統(tǒng),你可能需要把文件路徑加到 .profile 文件中:

echo "/root/system-info.sh" >> ~root/.profile

2、執(zhí)行以下命令,來讓修改的內(nèi)容生效:

source ~root/.bash_profile
#or 
source ~root/.profile

從下次開始,你在每次登錄 shell 時(shí)會(huì)看到terminal顯示Linux系統(tǒng)的相關(guān)信息。

輸出信息類似如下:

-------------------------------System Information---------------------------
Hostname:            linux265-Y700
uptime:              1:20 1
Manufacturer:        LENOVO
Product Name:        80NV
Version:             Lenovo ideapad Y700-15ISK
Serial Number:       AA0CMRN1
Machine Type:        Physical
Operating System:    Manjaro Linux
Kernel:              4.19.80-1-MANJARO
Architecture:        x86_64
Processor Name:      Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Active User:         root linux265
System Main IP:      192.168.1.6 192.168.122.1
-------------------------------CPU/Memory Usage------------------------------
Memory Usage:     37.28%
Swap Usage:       0.00%
CPU Usage:        15.43%
-------------------------------Disk Usage >80%-------------------------------
Filesystem      Size  Used Avail Use Mounted on
/dev/nvme0n1p1  217G  202G  4.6G  98 /
/dev/loop0      109M  109M     0 100 /var/lib/snapd/snap/odrive-unofficial/2
/dev/loop1       91M   91M     0 100 /var/lib/snapd/snap/core/6405
/dev/loop2       90M   90M     0 100 /var/lib/snapd/snap/core/7713
-------------------------------For WWN Details-------------------------------
CentOS8.linux265.com is a VM
-------------------------------Oracle DB Instances---------------------------
oracle user does not exist on CentOS8.linux265.com
-------------------------------Package Updates-------------------------------
    13 Security notice(s)
         9 Important Security notice(s)
         3 Moderate Security notice(s)
         1 Low Security notice(s)
    35 Bugfix notice(s)
     1 Enhancement notice(s)
-----------------------------------------------------------------------------

寫在最后

本教程已經(jīng)講解了編寫一個(gè)腳本將Linux系統(tǒng)信息集中呈現(xiàn)出來方式,你不妨在你的服務(wù)器上進(jìn)行嘗試。如果感興趣也可以對(duì)腳本進(jìn)行修改,實(shí)現(xiàn)自己需要展示的內(nèi)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,313評(píng)論 0 10
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,701評(píng)論 0 5
  • 背景: 閱讀新聞 12C CDB模式下RMAN備份與恢復(fù) [日期:2016-11-29] 來源:Linux社區(qū) 作...
    陽屯okyepd閱讀 3,828評(píng)論 0 7
  • 1.描述計(jì)算機(jī)的組成及其功能 (一)計(jì)算機(jī)的組成 1.CPU 2.CPU風(fēng)扇 3.BIOS 4.內(nèi)存 5.硬盤 6...
    whamai閱讀 1,638評(píng)論 0 1
  • 第 2 章 SHELL 基礎(chǔ)知識(shí)2.1 shell腳本我們?cè)谏厦婧?jiǎn)單介紹了一下什么是shell腳本,現(xiàn)在我們來進(jìn)一...
    LiWei_9e4b閱讀 1,641評(píng)論 0 0

友情鏈接更多精彩內(nèi)容