ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2022-01-18 11:03:52  阅读:179  来源: 互联网

标签:脚本 grep RedHat cat ------------------------------- Linux echo root Bash


 

 

使用场景: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数据库实例,同时还包括软件包更新。

 

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

 

标签:脚本,grep,RedHat,cat,-------------------------------,Linux,echo,root,Bash
来源: https://www.cnblogs.com/yuwentao/p/15816788.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有