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始终是空的,该如何解决?
展开
 我来答
清湛且鲜活灬桃花5795
2019-08-01 · TA获得超过3082个赞
知道大有可为答主
回答量:5373
采纳率:82%
帮助的人:642万
展开全部
如果找到关键字,停止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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式