以下这个脚本可以简单地监视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小时。