我已经设置了一个incrontab规则,以响应将文件添加到ubuntu框中的特定目录,并运行一个脚本。这很好,但我的目标是将该脚本的输出输出到一个文件中。
我尝试了几种不同的方法来解决这个问题,到目前为止,我能够让它工作的唯一方法是接受incrontab创建的生成的命令,然后自己运行它。因此,我的想法是,这是可能的,我可能只是错过了一些明显的经验linux用户。
为了简洁起见,我缩短了一些命令。"scriptPath“和"arg1”都是路径。我在脚本中引入两个参数,arg1和cron作业中的文件名通配符。
我试过:(这些程序运行脚本,但不要输出到文件)
IN_CREATE scriptPath arg1 $# >> /home/ubuntu/log/log-$ 2>&1 IN_CREATE scriptPath arg1 $# &>> /home/ubuntu/log/log-$#
(这些根本不起作用)
IN_CREATE /bin/bash scriptPath arg1 $# >> /home/ubuntu/log/log-$# 2>&1 IN_CREATE /bin/bash scriptPath arg1 $# &>> /home/ubuntu/log/log-$#
如果我运行'tail /var/log/syslog‘并获取从下面的incrontab生成的命令并将其粘贴到shell中,它就能正常工作。
IN_CREATE scriptPath arg1 $# &>> /home/ubuntu/log/log-$#
这工作
LHPUQ7ezcF0s0UwVgUR.txt /home/ubuntu/logs/log-mission-LHPUQ7ezcF0s0UwVgUR.txt scriptPath arg1任务
对我可能缺少的东西有什么见解吗?
发布于 2019-08-08 17:57:18
我遇到了类似的问题,发现incron只是忽略了输出重定向,并将它们作为参数提交给脚本:https://askubuntu.com/questions/1164166/incrond-does-not-execute-custom-script
因此,您的解决方案可能是首先调用一个包装器脚本,该脚本执行输出重定向到日志文件。
发布于 2020-04-09 15:22:32
如果您查看某个目录,则$@保存目录路径,并将触发该事件的文件$#。如果您观察一个文件,那么$@保存文件的完整路径,而$#是空的。参考文献。
https://stackoverflow.com/questions/51353752
复制相似问题