我认为,系统运维工程师来做巡检,无非就是在linux系统上面执行一些命令看一些结果。
1,sar
sar 1 3
这个命令会每隔 1 秒采集一次系统的资源使用情况,共采集 3 次
2,free -m
free -m
free -m
命令用于以兆字节(MB)为单位显示系统内存的使用情况。
free -h
命令用于以千兆字节(GB)为单位显示系统内存的使用情况。
total
:表示总内存大小。
used
:已使用的内存大小。
free
:空闲的内存大小。
shared
:被共享使用的内存大小。
buff/cache
:缓冲区和缓存使用的内存大小。
available
:可被应用程序使用的内存大小
3,uptime
uptime
uptime
命令用于显示系统的运行时间以及当前的负载情况
4,df -h
df -h
命令用于显示文件系统的磁盘空间使用情况
5,iostat
iostat
命令用于监视系统输入 / 输出设备和 CPU 的使用情况。
6,netstat -ant | grep ESTABLISHED | wc -l
这段命令的作用是统计当前处于 “ESTABLISHED”(已建立连接)状态的网络连接数量。
netstat -ant 会列出所有的 TCP 网络连接状态信息。
grep ESTABLISHED 从上述输出中筛选出状态为 “ESTABLISHED” 的行。
wc -l 则对筛选出来的行数进行统计。
7,netstat -ant | grep WAIT | wc -l
这段命令会统计处于 “WAIT” 状态的网络连接的数量。
它先通过 netstat -ant
获取所有的 TCP 网络连接状态信息,然后使用 grep WAIT
筛选出包含 “WAIT” 的行,最后通过 wc -l
统计行数,也就是处于 " WAIT " 状态的连接数。
这段命令会统计处于 “WAIT” 状态的网络连接的数量。
它先通过 netstat -ant 获取所有的 TCP 网络连接状态信息,然后使用 grep WAIT 筛选出包含 “WAIT” 的行,最后通过 wc -l 统计行数,也就是处于 “WAIT” 状态的连接数。
我们可以把这些命令写进一个shell脚本里面,然后用crontab定时任务去定时执行这个脚本,并且把生成的内容写到一个日志文件中去
sh ./xunjian.sh > $(date +%Y-%m-%d)-xunjian.log 2>&1
sh ./xunjian.sh > `date +%Y-%m-%d`-xunjian.log 2>&1
上面这两个命令意思的是一样的,需要注意的是date后面必须要有一个空格,不然系统会报错。不符合date命令的用法。
#!/bin/bash
sar 1 3
free -m
uptime
df -h
iostat
netstat -ant | grep ESTABLISHED | wc -l
netstat -ant | grep WAIT | wc -l