文章插图
linux 中有很多可以查看系统信息如处理器信息、生产商名字、序列号等的命令 。你可能需要执行多个命令来收集这些信息 。同时,记住所有的命令和他们的选项也是有难度 。-- Magesh Maruthamuthu(作者)Linux 中有很多可以查看系统信息如处理器信息、生产商名字、序列号等的命令 。你可能需要执行多个命令来收集这些信息 。同时,记住所有的命令和他们的选项也是有难度 。
你可以写一个 shell 脚本 基于你的需求来自定义显示的信息 。
以前我们出于不同的目的需要写很多个 bash 脚本。
现在我们写一个新的 shell 脚本,在每次登录到 shell 时显示需要的系统信息 。
这个j脚本有 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/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
推荐阅读
- C# Winform实现数据分页显示
- jenkins实现接口自动化持续集成
- 一通百通,一文实现灵活的 K8S 基础架构
- Centos7系统内核优化脚本
- 高德地图AR驾车导航新升级 实现全面机型覆盖
- Python网络编程实现自动化,简化Telnet网络配置工作
- IP代理技术是如何实现IP地址的切换与隐藏?
- Python实现钉钉/企业微信自动打卡
- 还不知道ReentrantLock的实现流程,那你就out了
- 一文看懂 HashMap 中的红黑树实现原理