我看过这个答案。
您应该考虑使用 inotifywait,例如:
Run Code Online (Sandbox Code Playgroud)inotifywait -m /path -e create -e moved_to | while read path action file; do echo "The file '$file' appeared in directory '$path' via '$action'" # do something with the file done
我的问题是,上面的脚本监视目录以创建任何类型的文件,但是如何修改inotifywait命令以仅在创建特定类型/扩展名的文件(或移动到目录中)时报告 - 例如它应该.xml创建任何文件时报告。
我试过的:
我已经运行了inotifywait --help命令,并阅读了命令行选项。它具有--exclude <pattern>和--excludei <pattern>命令来排除某些类型的文件(通过使用正则表达式),但我需要一种方法来只包括某些类型/扩展名的文件。
有一个目录,A其内容经常被其他人更改。
我创建了一个个人目录B,用于保存A.
目前,我只是偶尔运行rsync需要的档案从备份A到B。不过,我担心一些文件将被添加的可能性A,然后从取出A之前,我对他们在复制到机会B。
防止这种情况发生的最佳方法是什么?理想情况下,我希望每次A更改内容时都运行当前的备份脚本。
我有通过 ftp 上传文件的机器。在这台机器上,我想将 cronjob 和 scp/rsync(简单地复制它们)运行到同一网络中的不同机器上。
问题是我不想复制不完整的文件(仍在传输过程中)是否有可能检查文件是否完整,然后才复制到另一台服务器?
monitoring ×3
files ×2
backup ×1
directory ×1
file-copy ×1
filesystems ×1
inotify ×1
shell ×1
shell-script ×1