Cer*_*rin 7 linux filesystems bash amazon-s3 inotify
我在Linux系统上有一个本地媒体文件目录,我使用s3sync脚本与Amazon S3帐户同步.目前,当我知道媒体文件已被修改时,我手动运行s3sync脚本.
修改文件后如何自动运行脚本?
我想创建一个cron作业来每隔几分钟运行一次脚本,但这似乎是一个过多的处理,因为即使没有更改,脚本仍然必须扫描整个目录结构,这是非常大的.
我还考虑了incron/inotify,它允许在特定文件或目录更改时运行命令,但这些工具似乎不会自动支持监视对整个嵌套目录的更改.如果我错了,请纠正我,但似乎incron/inotify只能监控他们明确告知要监控的文件.例如,如果我想监视目录内任何级别的所有文件的更改,我必须编写单独的脚本来监视目录和文件添加/删除,以更新incron监视的文件和目录列表.
有更有效的解决方案吗?
对于此类任务,我使用fssm gem。
创建文件 watcher.rb
require 'fssm'
FSSM.monitor('/dir_to_watch/', '**/*') do
update {|base, relative| `your_script` }
delete {|base, relative| `your_script` }
create {|base, relative| `your_script` }
end
Run Code Online (Sandbox Code Playgroud)
然后:
ruby watcher.rb
Run Code Online (Sandbox Code Playgroud)
当然,如果你愿意,你可以妖魔化它。
| 归档时间: |
|
| 查看次数: |
4858 次 |
| 最近记录: |