bash - egrep output doesn't forward all lines to file -
i trying compose command monitor stability of script on server curling every couple of minutes (actual path script replaced):
while :; date +"%t" >> monitor.txt; time curl -is http://googel.com | egrep "http|m.\." >> monitor.txt; echo ================ >> monitor.txt; sleep 30; done the problem reason part of output not forwarded file monitor.txt. file contains following lines:
$ cat monitor.txt 19:39:10 http/1.1 301 moved permanently ================ 19:39:40 http/1.1 301 moved permanently ================ ..while time details go default output:
$ while :; date +"%t" >> monitor.txt; time curl -is http://googel.com | egrep "http|m.\." >> monitor.txt; echo ================ >> monitor.txt; sleep 30; done real 0m0.075s user 0m0.005s sys 0m0.003s real 0m0.106s user 0m0.004s sys 0m0.005s could please point out, missing here? run command in background , check monitor.txt results.
thank in advance!
the time command sends output stderr, not stdout. redirection affects stdout, time output ends going console.
to add confusion, bash has builtin time command, bit trickier redirect. if use /usr/bin/time instead of time, should able redirect output 2>&1 syntax. or if prefer bash builtin version of command, can see this answer way redirect output.
Comments
Post a Comment