有没有一种简单的方法来检查子文件夹中的文件更改?
我有SSLcerts
带有子文件夹的文件夹SiteNameXYZ
。每个子文件夹都包含证书文件包。
理想情况下,我需要一个能够响应任何子文件夹中的文件更改(日期修改)的脚本。
如果可能的话,我不想将inotify
或 systemd 路径单元附加到每个子文件夹。因为子文件夹很多,而且数量是动态的。
如果没有简单的解决方案 - 这对我来说也是正确的答案:)
答案1
如果您需要对目录中的更改立即采取行动 - 您必须使用inotify
.是的,树中的每个子目录都需要自己的手表。但手表的数量并不是真正的问题。只需在开始时扫描主目录,为每个子目录创建一个新的监视,潜入该子目录并重复。该递归将为您提供所需的所有手表。在创建/删除目录时,您还可以创建/删除监视。
如果您对延迟检查感到满意 - 您可以执行以下操作
#!/usr/sh
CUR=list_of_files.txt
PREV=old_list_of_files.txt
CHANGES=list_of_changes.txt
mv $CUR $OLD
ls -lR /maindir/ > $CUR
diff $OLD $CUR > $CHANGES
# And now you can do whatever you need with the changes.
可以将此类脚本放入cron
常规运行中。