以下這個腳本可以簡單地監視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小時