Incron 未启动脚本

Incron 未启动脚本

我通过 Dropbox 将文件从自行车电脑上传到我的电脑(自行车电脑->Dropbox->我的电脑),并希望在上传时启动 Python 程序。今天,我有一个 CRON 条目,每 5 分钟运行一次以查找文件,但我希望在文件上传时触发此过程。

我已经安装了 INCRON 并定义了一个事件表来测试它在文件上传时是否有效。本次测试的事件表(以及我的经验):

/home/dave/Dropbox/apps/WahooFitness/   IN_CLOSE_WRITE   /bin/bash /home/dave/Scripts/WahooFileFound.sh $#
/home/dave/Dropbox/Test/        IN_CLOSE_WRITE   /bin/bash /home/dave/Scripts/TestFileFound.sh $#

“incrontab”的第一行用于从我的自行车电脑上传文件。第二行只是一个测试,因为我每天只骑一次自行车。一旦我确信这个测试会成功,我就会安排一个 Python 程序在上传真正的自行车电脑文件时运行。

我可以看到当我在文件夹中创建新文件时触发了该事件:

Feb 02 15:27:16 davesdesktop incrond[561422]: PATH (/home/dave/Dropbox/Test/) FILE (TestFileFound.txt) EVENT (IN_CLOSE_WRITE)
Feb 02 15:27:16 davesdesktop incrond[561422]: (dave) CMD (/home/dave/Scripts/TestFileFound.sh TestFileFound.txt)

INCRON 表示脚本已启动但未执行。如果我从命令行运行该脚本,它会按预期工作,在 /tmp 中生成文件并发送电子邮件。脚本:

#!/bin/bash
set -eu
# Original:   V1
echo "From TestFileFound.sh: Test File '$1' from '$HOME/Dropbox/Test' was found!!!!" > /tmp/TestFileFound_Message.txt 
# Send email 
EMAIL="<my email address>" 
SUBJ="Test File from '$HOME/Dropbox/Test' was found!!!!"
mail -s "$SUBJ" "$EMAIL" < /tmp/TestFileFound.txt
exit

它被标记为可执行:

[15:20:30 ~]$ ls -l Scripts/Test*.sh
-rwxrwxr-x 1 dave dave 312 Feb  2 15:22 Scripts/TestFileFound.

我没有看到 /tmp 文件夹中由“echo”消息创建的文件,也没有看到此脚本由 INCRON 事件触发时的任何电子邮件。

我有各种脚本和 Python 程序由我的用户 CRON 安排,它们成功创建电子邮件以在完成后通知我,并且我会在我的 GMAIL 收件箱中看到这些电子邮件。

我没有做什么或者做错了什么,导致这个脚本在 INCRON 触发时没有运行?

提前感谢您提供的任何解决方案或建议。

戴夫

答案1

更多详情请访问https://hackaday.com/2020/10/28/linux-fu-troubleshooting-incron/

  1. 使用 $HOME/tmp 作为由 INCRON 启动的脚本中的临时文件。
  2. 确定受监控的目录/文件夹中加载新文件时将发生哪些事件。将文件从云端移动到本地 Dropbox 文件夹时,Dropbox 不会触发 WRITE 或 CLOSE 事件(其中任何一个)。
  3. 该答案第一行引用的站点有示例脚本,可帮助确定正在发生的事件。

感谢所有的建议!

相关内容