我花了很多时间来得到这个运行:输出重定向到多张文件与发球和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