Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息


Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息

文章插图
 
linux 中有很多可以查看系统信息如处理器信息、生产商名字、序列号等的命令 。你可能需要执行多个命令来收集这些信息 。同时,记住所有的命令和他们的选项也是有难度 。-- Magesh Maruthamuthu(作者)
Linux 中有很多可以查看系统信息如处理器信息、生产商名字、序列号等的命令 。你可能需要执行多个命令来收集这些信息 。同时,记住所有的命令和他们的选项也是有难度 。
你可以写一个 shell 脚本 基于你的需求来自定义显示的信息 。
以前我们出于不同的目的需要写很多个 bash 脚本。
现在我们写一个新的 shell 脚本,在每次登录到 shell 时显示需要的系统信息 。
这个j脚本有 6 部分,细节如下:
  1. 通用系统信息
  2. CPU/内存当前使用情况
  3. 硬盘使用率超过 80%
  4. 列出系统 WWN 详情
  5. Oracle DB 实例
  6. 可更新的包
【Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息】我们已经基于我们的需求把可能需要到的信息加到了每个部分 。之后你可以基于自己的意愿修改这个脚本 。
这个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/bashecho -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 ]thenecho "$(hostname) is a VM"elsecat /sys/class/fc_host/host?/port_namefiecho ""echo -e "-------------------------------Oracle DB Instances---------------------------"if id oracle >/dev/null 2>&1; then/bin/ps -ef|grep pmonthenelseecho "oracle user does not exist on $(hostname)"fiecho ""if (( $(cat /etc/*-release | grep -w "Oracle|Red Hat|centos|Fedora" | wc -l) > 0 ))thenecho -e "-------------------------------Package Updates-------------------------------"yum updateinfo summary | grep 'Security|Bugfix|Enhancement'echo -e "-----------------------------------------------------------------------------"elseecho -e "-------------------------------Package Updates-------------------------------"cat /var/lib/update-notifier/updates-availableecho -e "-----------------------------------------------------------------------------"fi


推荐阅读