inotify-wait 作为守护进程的问题

inotify-wait 作为守护进程的问题

我已经在 byobu 的 ftp 服务器上运行 inotify-wait 来监视文件夹、移动数据和发送电子邮件通知几个月了,没有出现任何问题。自从我开始这个以来,我又添加了 3 个我监控的文件夹,我想开始将 inotify-wait 作为守护进程运行,而不是在 byobu 会话中运行。我修改了我的脚本,使其更容易只需要更改一个变量并作为守护进程运行。不幸的是它现在什么也不做。我希望有经验的人可以看看并告诉我哪里出了问题。

#!/usr/bin/env bash

user=testuser
dir=/ftp/"$user"/upload/
log=/ftp/"$user"/log/"$user.log"
archive=/ftp/"$user"/archive/
target=/ftp/FTPDATA/"$user"/

inotifywait -q\
-d "$dir" \
-o "$log" \
-e close_write --format %f . | while IFS= read -r file; do
cp -p "$file" "$target"
/scripts/"$user-notify.sh"
mv "$file" "$archive""$(date +%F-%T)"
done

答案1

您使用的是哪个版本inotifywait?根据这一man -d指定您希望将其作为守护程序运行,但它不接受参数值 ( "$dir")。此外,-o "$log"它将输出保存到日志文件,而不是将其发送到标准输出。inotifywait在继续执行脚本之前确保您有一个有效的命令 - 最好添加一个测试它监视临时目录中的一些文件(或用更好的语言重新实现,如 Java、Python 或 Ruby)。

相关内容