以下这个脚本可以简单地监视Linux下各个进程的运行状况。
#!/bin/sh
PSLOG=~/ps-log
LOADLOG=~/load-log
INTERVAL=30 # ps 运行时间间隔
COUNTER=10 # 统计次数
while [ $COUNTER -gt 0 ]
do
TIME=$(date +%H:%M:%S)
cat /proc/loadavg |
sed -e "s/^/$TIME /" >> $LOADLOG
ps -e --cols 200 o user,pid,ppid,pri,size,rss,stat,pagein,%cpu,%mem,time,cmd |
sed -e "s/^/$TIME /" >> $PSLOG
echo $TIME $(ls -hs $LOADLOG $PSLOG)
let COUNTER-=1
sleep $INTERVAL
done
该脚本每隔 $INTERVAL 秒执行一次 ps 命令并将结果记录到日志文件中,共执行 $COUNTER 次。因此 $INTERVAL * $COUNTER 即为监视时间。例如想监视 20:00~2:00 的情况,即可设置 COUNTER=720,因为 720 * 30 = 21600秒 = 6小时