我已经设置了一个 incrontab 规则来对添加到我的 ubuntu 盒子上特定目录的文件做出反应,并运行一个脚本。这很好用,但我的目标是将该脚本的输出打印到文件中。
我尝试了几种不同的方法来解决它,到目前为止,我能够让它工作的唯一方法是获取 incrontab 创建的生成命令,然后自己运行它。所以我的想法是它是可能的,我可能只是错过了一些对于经验丰富的 linux 用户来说显而易见的东西。
为了简洁起见,我缩短了一些命令。“watchdir” “scriptPath” 和 “arg1” 都是路径。我在脚本中引入了两个参数,arg1 和来自 cron 作业的文件名通配符。
我试过了:(这些运行脚本,但不输出到文件)
watchdir IN_CREATE scriptPath arg1 $# >> /home/ubuntu/logs/log-$# 2>&1
watchdir IN_CREATE scriptPath arg1 $# &>> /home/ubuntu/logs/log-$#
(这些什么都不做)
watchdir IN_CREATE /bin/bash scriptPath arg1 $# >> /home/ubuntu/log/log-$# 2>&1
watchdir IN_CREATE /bin/bash scriptPath arg1 $# &>> /home/ubuntu/log/log-$#
如果我运行 'tail /var/log/syslog' 并获取从下面的 incrontab 生成的命令并将其粘贴到 shell 中,它可以正常工作
watchdir IN_CREATE scriptPath arg1 $# &>> /home/ubuntu/logs/log-$#
这有效
scriptPath arg1 任务-LHPUQ7ezcF0s0UwVgUR.txt &>> /home/ubuntu/logs/log-mission-LHPUQ7ezcF0s0UwVgUR.txt
关于我可能会错过什么的任何见解?