【问题标题】:Exclude a folder in a script that checks for file changes?在检查文件更改的脚本中排除文件夹?
【发布时间】:2018-07-17 18:20:31
【问题描述】:

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

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 找到了原始脚本,并刚刚编辑了电子邮件以匹配我的,所以我不知道实际编辑脚本本身。有人可以帮我吗?

【问题讨论】:

    标签: file cron cron-task


    【解决方案1】:

    最简单的答案如下,通过在“find”和“mail”命令之间添加“grep”来过滤掉您希望排除的路径。

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

    如果您遇到任何其他困难,请告诉我。

    【讨论】:

      【解决方案2】:

      尝试使用grepfind 忽略具有特定模式的条目。

      使用 grep:

      find /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
      

      或者告诉 find 忽略它:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-07
        • 1970-01-01
        • 2015-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-08
        • 1970-01-01
        相关资源
        最近更新 更多