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 的两个中级证书 ...

















