巡检主机系统版本:centos7
编程需求:
日常巡检是每一个运维必须要做的事情,如果能用脚本实现的话,那将大大简化巡检的工作难度!
[root@localhost shell]# vim sys_check.sh
#!/bin/bash
#第一部分:系统信息===
sys_info(){
sys_type=$(uname)
sys_version=$(cat /etc/redhat-release)
sys_core=$(uname -r)
sys_date=$(date +%F_%T)
sys_last_reboot=$(who -b|awk '{print $3}')
sys_hostname=$(hostname)
echo "系统类型:${sys_type}"
echo "系统版本号: ${sys_version}"
echo "系统内核: ${sys_core}"
echo "系统当前运行时间: ${sys_date}"
echo "系统最后重启时间: ${sys_last_reboot}"
echo "主机名称: ${sys_hostname}"
}
#第二部分:网络信息=====
net_info(){
net=$(ifconfig |grep 192|awk '{print $2}')
echo "本机主机的ip地址为:$net"
ping baidu.com -c 1 >/dev/null
if [ $? -eq 0 ]; then
echo "能正常访问外网"
else
echo "请查看你的网络!"
fi
}
#第三部分:硬件信息==========
:<<eof
cpu信息
内存信息:内存总量,剩余内存总量
磁盘信息
eof
cpu_info(){
cpu_num=$(lscpu|sed -n '4p'|awk '{print $2}')
cpu_core=$(cat /proc/cpuinfo |grep "core id"|sort |uniq |wc -l)
cpu_mode=$(cat /proc/cpuinfo |grep "model name"|sort |uniq|awk -F ':' '{print $2}')
echo "cpu的个数:${cpu_num}"
echo "cpu的核心数:${cpu_core}"
echo "cpu的型号:${cpu_mode}"
}
mem_info(){
mem_total=$(free -m|grep Mem|awk '{print $2}')
mem_free=$(free -m|grep Mem|awk '{print $4}')
echo "内存总量为:${mem_total}"
echo "剩余内存总量为:${mem_free}"
}
disk_info(){
var=(`df -T|grep -v tmpfs|sed '1d'|awk '{print $3}'`)
int=0
for i in ${var[@]}
do
size=`expr $int + $i`
done
echo "磁盘总量为:$size"
var=(`df -T|grep -v tmpfs|awk '{print $5}'|sed '1d'`)
for i in ${var[@]}
do
size=`expr $int + $i`
done
echo "剩余磁盘总量为:$size"
}
while :
do
sys_info
net_info
cpu_info
mem_info
disk_info
sleep 1
done
在脚本最后加了死循环调用上面写的函数不停输出巡检结果
执行脚本
[root@localhost shell]# sh sys_check.sh
系统类型:Linux
系统版本号: CentOS Linux release 7.5.1804 (Core)
系统内核: 3.10.0-862.el7.x86_64
系统当前运行时间: 2020-04-05_19:52:09
系统最后重启时间: 21:39
主机名称: localhost.localdomain
本机主机的ip地址为:192.168.141.130
192.168.122.1
能正常访问外网
cpu的个数:4
cpu的核心数:2
cpu的型号: Intel® Core™ i5-6200U CPU @ 2.30GHz
内存总量为:1821
剩余内存总量为:128
磁盘总量为:9176232
剩余磁盘总量为:0