Linux中國
Bash 腳本實現每次登錄到 Shell 時可以查看 Linux 系統信息
Linux 中有很多可以查看系統信息如處理器信息、生產商名字、序列號等的命令。你可能需要執行多個命令來收集這些信息。同時,記住所有的命令和他們的選項也是有難度。
你可以寫一個 shell 腳本 基於你的需求來自定義顯示的信息。
以前我們出於不同的目的需要寫很多個 bash 腳本。
現在我們寫一個新的 shell 腳本,在每次登錄到 shell 時顯示需要的系統信息。
這個腳本有 6 部分,細節如下:
- 通用系統信息
- CPU/內存當前使用情況
- 硬碟使用率超過 80%
- 列出系統 WWN 詳情
- Oracle DB 實例
- 可更新的包
我們已經基於我們的需求把可能需要到的信息加到了每個部分。之後你可以基於自己的意願修改這個腳本。
這個j腳本需要用到很多工具,其中大部分我們之前已經涉及到了。
你可以參照以前文章,了解工具詳情。
- inxi – 在 Linux 上檢查硬體信息的絕佳工具
- Dmidecode – 獲取 Linux 系統硬體信息的簡便方法
- LSHW(硬體列表程序)– 在 Linux 上獲取硬體信息的漂亮工具
- hwinfo(硬體信息)– 在 Linux 上檢測系統硬體信息的漂亮工具
- python-hwinfo:使用標準 Linux 實用工具顯示硬體信息摘要
- 如何使用 lspci、lsscsi、lsusb 和 lsblk 獲取 Linux 系統設備信息
- 如何在 Linux 中檢查系統硬體製造商、型號和序列號
- 如何在 Linux 中查找 HBA 卡的 WWN、WWNN 和 WWPN 號
- 如何從 Linux 命令行檢查 HP iLO 固件版本
- 如何從 Linux 命令行檢查無線網卡和 WiFi 信息
- 如何在 Linux 上檢查 CPU 和硬碟溫度
- Hegemon – Linux 的模塊化系統和硬體監視工具
- 如何在 Linux 上檢查系統配置和硬體信息
如果你想為這個腳本增加其他的信息,請在評論去留下你的需求,以便我們幫助你。
Bash 腳本實現每次登錄到 Shell 時可以查看 Linux 系統信息
這個腳本會在你每次登錄 shell 時把系統信息列印到 terminal。
# vi /opt/scripts/system-info.sh
#!/bin/bash
echo -e "-------------------------------System Information----------------------------"
echo -e "Hostname:tt"`hostname`
echo -e "uptime:ttt"`uptime | awk '{print $3,$4}' | sed 's/,//'`
echo -e "Manufacturer:tt"`cat /sys/class/dmi/id/chassis_vendor`
echo -e "Product Name:tt"`cat /sys/class/dmi/id/product_name`
echo -e "Version:tt"`cat /sys/class/dmi/id/product_version`
echo -e "Serial Number:tt"`cat /sys/class/dmi/id/product_serial`
echo -e "Machine Type:tt"`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:ttt"`uname -r`
echo -e "Architecture:tt"`arch`
echo -e "Processor Name:tt"`awk -F':' '/^model name/ {print $2}' /proc/cpuinfo | uniq | sed -e 's/^[ t]*//'`
echo -e "Active User:tt"`w | cut -d ' ' -f1 | grep -v USER | xargs -n1`
echo -e "System Main IP:tt"`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
把上面腳本內容保存到一個文件 system-info.sh,之後添加可執行許可權:
# chmod +x ~root/system-info.sh
當腳本準備好後,把腳本文件的路徑加到 .bash_profile 文件末尾(紅帽系列的系統:CentOS、Oracle Linux 和 Fedora):
# echo "/root/system-info.sh" >> ~root/.bash_profile
執行以下命令,來讓修改的內容生效:
# source ~root/.bash_profile
對於 Debian 系統的系統,你可能需要把文件路徑加到 .profile 文件中:
# echo "/root/system-info.sh" >> ~root/.profile
運行以下命令使修改生效:
# source ~root/.profile
你以前運行上面 source 命令時可能見過類似下面的輸出。從下次開始,你在每次登錄 shell 時會看到這些信息。當然,如果有必要你也可以隨時手動執行這個腳本。
-------------------------------System Information------------------------Hostname: daygeek-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: daygeek renu thanu
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.2daygeek.com is a VM
-------------------------------Oracle DB Instances------------------------oracle user does not exist on CentOS8.2daygeek.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)
--------------------------------------------------------------------------```
via:
作者:[Magesh Maruthamuthu](https://www.2daygeek.com/author/magesh/) 選題:[lujun9972](https://github.com/lujun9972) 譯者:[lxbwolf](https://github.com/lxbwolf) 校對:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原創編譯,[Linux中國](https://linux.cn/) 榮譽推出
---
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive
對這篇文章感覺如何?
太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
More in:Linux中國
捐贈 Let's Encrypt,共建安全的互聯網
隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
Let's Encrypt 正式發布,已經保護 380 萬個域名
由於 Let's Encrypt 讓安裝 X.509 TLS 證書變得非常簡單,所以這個數量增長迅猛。
關於Linux防火牆iptables的面試問答
Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
Lets Encrypt 已被所有主流瀏覽器所信任
旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...

















