在脚本中排除检查文件更改的文件夹?

时间:2018-07-17 18:20:32

标签: file cron cron-task

我有一个cronjob,它每24小时运行一次,以告诉我服务器上的文件是否已更改。脚本是这样的:

find /home/bsc1933 -type f -ctime -1 -exec ls -ls {} \; | mail -E -s “File Changes, Past 24 Hours” myemail

我想修改它以排除特定的文件夹,在这种情况下,我的缓存文件夹为/home/bsc1933/public_html/cache

我用Google-fu找到了原始脚本,然后编辑了电子邮件以匹配我的电子邮件,因此我不知道实际编辑脚本本身的知识。有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

尝试使用findfind /home/bsc1933 -type f -ctime -1 -exec ls -ls {} \; |grep -Ev "/home/bsc1933/public_html/cache" | mail -E -s “File Changes, Past 24 Hours” myemail 忽略具有特定模式的条目。

使用grep:

find /home/bsc1933 ! -path '*/.cache/*' -type f -ctime -1 -exec ls -ls {} \; | mail -E -s “File Changes, Past 24 Hours” myemail

或告诉查找忽略它:

This is line 1
This is line 2

答案 1 :(得分:0)

最简单的答案如下:在“查找”和“邮件”命令之间添加“ grep”以过滤出要排除的路径。

`find /home/bsc1933 -type f -ctime -1 -exec ls -ls {} \; | grep -v '/home/bsc1933/public_html/cache' |` ... your code to send email ...

让我知道您是否还有其他困难。