2014-04-08 24 views
0

我想要一個小時,每5秒鐘將top和ps的內容轉儲到日誌文件。
在命令行下面一行的工作原理:
用top,ps,watch和timeout監視服務器

timeout 1h watch -n 5 'TMS=`date +%s`;top -bn1>>top-$TMS.log;ps aux>>ps-$TMS.log;' 

但放在一個文件(如果我叫:./monitor-server.sh),不創建日誌。

timeout命令在腳本中似乎不起作用。如果我做的腳本(無超時)之類的相同的呼叫:

watch -n 5 'TMS=`date +%s`;top -bn1>>top-$TMS.log;ps aux>>ps-$TMS.log;' 

的作品......

任何建議什麼我做錯了嗎?

回答

2

我想你需要在後臺運行它,以避免從父進程(shell)中產生依賴。嘗試:

nohup timeout 1h watch -n 5 'TMS=`date +%s`;top -bn1>>top-$TMS.log;ps aux>>ps-$TMS.log;' & 
+0

感謝修改腳本,它通過調用腳本工作。但我似乎無法計劃像「現在-f ./monitor-server.sh」這樣的工作? – Alain

+0

@Alain它應該是'ps auxf'下的最後一個(父)進程 – agilob

+0

我在-f monitor-server.sh所調用的腳本中運行該行(上面提到過)。我沒有看到ps auxf的過程。 ? – Alain