• RedHat/CentOS8使用Bash脚本查看Linux上的系统信息


    使用场景:Linux中有几个命令可用于获取系统信息,例如处理器信息、制造商名称和序列号等。但您可以编写Shell脚本以根据需要自定义输出,我们想到了一个新的Shell脚本,该脚本在您每次登录Shell时向您显示所需的系统信息。

    该脚本设计分为六个部分:

    第1部分:基本系统信息。

    第2部分:CPU/内存的当前使用情况。

    第3部分:磁盘使用率>80%。

    第4部分:列表系统WWN详细信息。

    第5部分:Oracle数据库实例。

    第6部分:可用的软件包更新。

    我们已根据需要向每个领域添加了潜在信息,您可以根据需要进一步定制此脚本。

    使用效果:每次登录到Shell时查看Linux上的系统信息

    每当您登录Shell程序时,此基本脚本都会将系统信息显示到您的终端上。

    Bash脚本代码如下:

      1 #vi /opt/scripts/system-info.sh
      2 
      3 #!/bin/bash
      4 
      5 echo -e "-------------------------------System Information----------------------------"
      6 
      7 echo -e "Hostname:\t\t"`hostname`
      8 
      9 echo -e "uptime:\t\t\t"`uptime | awk '{print $3,$4}' | sed 's/,//'`
     10 
     11 echo -e "Manufacturer:\t\t"`cat /sys/class/dmi/id/chassis_vendor`
     12 
     13 echo -e "Product Name:\t\t"`cat /sys/class/dmi/id/product_name`
     14 
     15 echo -e "Version:\t\t"`cat /sys/class/dmi/id/product_version`
     16 
     17 echo -e "Serial Number:\t\t"`cat /sys/class/dmi/id/product_serial`
     18 
     19 echo -e "Machine Type:\t\t"`vserver=$(lscpu | grep Hypervisor | wc -l); if [ $vserver -gt 0 ]; then echo "VM"; else echo "Physical"; fi`
     20 
     21 echo -e "Operating System:\t"`hostnamectl | grep "Operating System" | cut -d ' ' -f5-`
     22 
     23 echo -e "Kernel:\t\t\t"`uname -r`
     24 
     25 echo -e "Architecture:\t\t"`arch`
     26 
     27 echo -e "Processor Name:\t\t"`awk -F':' '/^model name/ {print $2}' /proc/cpuinfo | uniq | sed -e 's/^[ \t]*//'`
     28 
     29 echo -e "Active User:\t\t"`w | cut -d ' ' -f1 | grep -v USER | xargs -n1`
     30 
     31 echo -e "System Main IP:\t\t"`hostname -I`
     32 
     33 echo ""
     34 
     35 echo -e "-------------------------------CPU/Memory Usage------------------------------"
     36 
     37 echo -e "Memory Usage:\t"`free | awk '/Mem/{printf("%.2f%"), $3/$2*100}'`
     38 
     39 echo -e "Swap Usage:\t"`free | awk '/Swap/{printf("%.2f%"), $3/$2*100}'`
     40 
     41 echo -e "CPU Usage:\t"`cat /proc/stat | awk '/cpu/{printf("%.2f%\n"), ($2+$4)*100/($2+$4+$5)}' |  awk '{print $0}' | head -1`
     42 
     43 echo ""
     44 
     45 echo -e "-------------------------------Disk Usage >80%-------------------------------"
     46 
     47 df -Ph | sed s/%//g | awk '{ if($5 > 80) print $0;}'
     48 
     49 echo ""
     50 
     51 echo -e "-------------------------------For WWN Details-------------------------------"
     52 
     53 vserver=$(lscpu | grep Hypervisor | wc -l)
     54 
     55 if [ $vserver -gt 0 ]
     56 
     57 then
     58 
     59 echo "$(hostname) is a VM"
     60 
     61 else
     62 
     63 cat /sys/class/fc_host/host?/port_name
     64 
     65 fi
     66 
     67 echo ""
     68 
     69 echo -e "-------------------------------Oracle DB Instances---------------------------"
     70 
     71 if id oracle >/dev/null 2>&1; then
     72 
     73 /bin/ps -ef|grep pmon
     74 
     75 then
     76 
     77 else
     78 
     79 echo "oracle user does not exist on $(hostname)"
     80 
     81 fi
     82 
     83 echo ""
     84 
     85 if (( $(cat /etc/*-release | grep -w "Oracle|Red Hat|CentOS|Fedora" | wc -l) > 0 ))
     86 
     87 then
     88 
     89 echo -e "-------------------------------Package Updates-------------------------------"
     90 
     91 yum updateinfo summary | grep 'Security|Bugfix|Enhancement'
     92 
     93 echo -e "-----------------------------------------------------------------------------"
     94 
     95 else
     96 
     97 echo -e "-------------------------------Package Updates-------------------------------"
     98 
     99 cat /var/lib/update-notifier/updates-available
    100 
    101 echo -e "-----------------------------------------------------------------------------"
    102 
    103 fi
    104 
    105 注:到这脚本结束。
    106 
    107 将以上脚本添加到文件后,设置“system-info.sh”文件的可执行权限:
    108 
    109 # chmod +x ~root/system-info.sh
    110 
    111 脚本准备好后,在基于RHEL的系统CentOS、Oracle Linux和Fedora中的“.bash_profile”文件末尾添加文件路径:
    112 
    113 # echo "/root/system-info.sh" >> ~root/.bash_profile
    114 
    115 参考:echo命令_Linux echo命令使用详解:输出指定的字符串或者变量。
    116 
    117 要使此更改生效,请运行以下命令:
    118 
    119 # source ~root/.bash_profile
    120 
    121 对于基于Debian的系统,您需要将文件路径添加到“.profile”文件:
    122 
    123 # echo "/root/system-info.sh" >> ~root/.profile
    124 
    125 运行以下命令以使更改生效:
    126 
    127 # source ~root/.profile

    运行上面的“source”命令时,您可能已经看到类似下面的输出,如下图所示。从下一次开始,每次登录shell时,您都将获得这些信息。

    显示的数据有:基本的系统信息、CPU/内存使用情况、磁盘使用率>80%、关于WWN详细信息、Oracle数据库实例,同时还包括软件包更新。

    当然,您可以根据需要随时手动运行此脚本。

  • 相关阅读:
    递归的初步应用
    最大公约数与最小公倍数(低效)
    进制转换
    凸多边形的面积问题
    单词替换
    DNA排序
    字符串排序
    倒三角形
    韩信点兵
    oracle
  • 原文地址:https://www.cnblogs.com/yuwentao/p/15816788.html
Copyright © 2020-2023  润新知