我花了很多時間來得到這個運行:輸出重定向到多張文件與發球和grep
從腳本STDOUT + STDERR toLogfile 1和grep的輸出重定向到日誌文件2
第一日誌文件應該包含完整的輸出,而第二個日誌文件只包含開始和結束行(grep)。
我嘗試了不同的語法,但沒有任何工作。
./run.sh 2>&1 | tee -a /var/log/log1.log | (grep 'START|END') > /var/log/myscripts.log
./run.sh 2>&1 | tee -a /var/log/log1.log | grep 'Start' > /var/log/myscripts.log
./run.sh 2>&1 | tee -a /var/log/log1.log | egrep 'Start' > /var/log/myscripts.log
./run.sh 2>&1 | tee -a /var/log/log1.log | grep -E 'Start' > /var/log/myscripts.log
輸出將只被重定向到第一個日誌。第二個日誌是空的。
我不知道爲什麼;你有什麼想法?
從輸出
實施例線這應該在log1.log完整
(腳本是經由外殼腳本的java startet)
26.09.2014 20:38:51 | start script > load_stats.sh
26.09.2014 20:38:51 | [DB DATA]
26.09.2014 20:38:51 | Host > locahost
26.09.2014 20:38:51 | User > leroy
... more ...
26.09.2014 20:39:23 | fin script > load_stats.sh
我想在myscripts到grep此.log
26.09.2014 20:38:51 | start script > load_stats.sh
26.09.2014 20:39:23 | fin script > load_stats.sh
我認爲問題是格式,時間戳,whitespac ES。 我認爲grep'word'會把這兩條線都吸引住我,但事實並非如此。 愚蠢的。
./run.sh 2>&1 | tee -a /var/log/log1.log | sed -nE '/(start script|end script)/p' >> /var/log/myscripts.log
沒有工作,log1中確定,在shell mysrctips.log空
tail -f -n 500 /var/log/log1.log | sed -nE '/(start script|end script)/p'
效果很好。但所有它沒有組合。
執行腳本>重定向到日誌1>重定向和過濾(grep,egrep,sed,..)登錄2
你grepping不同的單詞,一旦'開始'下次'開始' - 所以,你想要什麼grep? – jm666 2014-09-26 18:28:21
'開始|結束'是文本模式。我喜歡grep「啓動腳本」和「Fin腳本」。 – Memphis01 2014-09-26 18:30:48
我嘗試了sysntax,發生了同樣的情況。但知道我認爲這個問題是另一回事。 – Memphis01 2014-09-26 18:40:59