最近服务器碰到不少排查不到具体原因的问题,需要一个内存/CPU/磁盘/Nvidia/docker等监控。如果为此就整一个监控系统,那就大材小用了,所以用shell实现一个简单的监控,方便出问题的时候,可以查到对应时间点的系统状态:
代码语言:javascript复制ymd=$(date "%y%m%d")
filename="/tmp/system-top-logs-$ymd.txt"
cd /data/data
echo >> $filename
top -b -n 1 | head -n5 >> $filename 2>&1
echo "---" >> $filename
df -h |grep "/dev/" >> $filename 2>&1
echo "---" >> $filename
docker stats --no-stream | head -n 10 >> $filename 2>&1
echo "---" >> $filename
nvidia-smi |head -n16 >> $filename 2>&1
echo "---" >> $filename
/usr/local/bin/docker-compose ps >> $filename 2>&1
echo "---" >> $filename
把脚本加到crontab中,每分钟执行一次,这样就能记录系统每分钟的状态。