如何在目录更新时自动运行命令?

如何在目录更新时自动运行命令?

这是一种在 CentOS 中监视目录(例如 /opt/data)的方法吗?每次将文件添加到该目录时,我们都会自动运行一个命令?我安装了inotify,但不确定这是否是最好的工具。

你能帮忙吗?先感谢您

答案1

您可以使用以下命令监视目录inotifywait并在添加文件时运行命令:

inotifywait -m -e create -e moved_to --no-newline --format "%f%0" /opt/data | \
   while IFS= read -r -d '' NAME; do
       echo "Added file: '${NAME}'"
   done

替换echo "Added file: '${NAME}'"为您的命令。

选项inotifywait

  • -m— 第一个事件发生后不要退出。
  • -e create -e moved_to— 要报告的事件。 inotify区分文件创建事件和移动事件,因此两者都被指定。
  • --no-newline— 不要在文件名后打印换行符。
  • --format "%f%0"— 仅打印以零结尾的文件名。

相关内容