2014-02-18 25 views
11

我想運行一個命令每60秒,輸出保存到一個日誌文件的輸出。 我知道我可以通過如何保存「手錶」進行文件

watch -n 60 <mycommand> 

但是打印到控制檯,如果我想將它保存到一個文件,以及打印到控制檯?

+2

已經在這裏解決:http://superuser.com/questions/297283/store-the-output-of-date-and-watch-command-to-a-file – fedorqui

+0

使用tee http://linux.101hacks .COM/UNIX /開球命令的例子/ – Deepthought

回答

13

腕錶的設計在一個控制檯窗口中運行。打印輸出到文件是不方便的,因爲大量的不可打印格式字符。

你可以試試這個沒有手錶,如果準確的60秒鐘沒有不是一個問題:

while <some condition> 
do 
    <mycommand> 2>&1 | tee -a /path/to/logfile 
    sleep 60 
done 

這節省了輸出到日誌文件,並將其顯示在控制檯上也是如此。

+0

可以作爲後臺進程,使其開始每隔60秒,而不是60秒後它最後完成的運行命令。 – chepner

+0

葉普,你說得對。你可以把它添加到你的crontab,以及這樣的: 「* * * * * /路徑/到/ mycommand的2>&1 | /路徑/至/三通-a /路徑/到/日誌文件」 雖然這不會工作,如果你想每60秒更頻繁地運行一次。 – sweetkorn

4

嘗試:

while true 
do 
    watch -n 60 <command> 2>&1 | tee -a logfile 
done 

我用tee,這樣你可以看到你的終端輸出,以及捕獲它在你的日誌。