shell脚本中tail -f 日志输出到文件, 如果shell脚本后台运行日志无法写入文件,该如何处理?
#!/bin/bashtail-f/home/runing.log|grep"count:">123.log脚本如上很简单,但是当你吧这个shell脚本后台执行的时候发现...
#!/bin/bash
tail -f /home/runing.log | grep "count:"> 123.log
脚本如上很简单, 但是当你吧这个shell脚本后台执行的时候发现123.log始终是空的,该如何解决? 展开
tail -f /home/runing.log | grep "count:"> 123.log
脚本如上很简单, 但是当你吧这个shell脚本后台执行的时候发现123.log始终是空的,该如何解决? 展开
1个回答
展开全部
如果找到关键字,停止tail,继续执行后面的,但如果没找到的情况你没讲,我这个是如果超时1分钟没找到,也停止tail,并且终止脚本继续执行。{ sed /"$keywords"/q; kill $!; } < <(exec timeout 1m tail -Fn 0 "$log_file")适合用在脚本中,$keywords 和 $log_file 是要查找的关键字和目标文件,替换掉或者脚本前面设置变量。这个命令用到了进程替换(b.sh相关),和遇到错误停止(凡是脚本都应该用),所以脚本开头得是这两行 #!/bin/bashset -euxo pipefail并且执行这个脚本也得用 bash xxxx.sh,虽然CentOS里 sh 是 bash 的软链,但也不能用 sh,得用 bash
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询