gpt4 book ai didi

shell - 需要查看24小时内哪些文件已更改并发送电子邮件(Shell脚本)

转载 作者:行者123 更新时间:2023-12-02 14:24:48 25 4
gpt4 key购买 nike

我需要一个可以作为Cron作业计划的Shell脚本。它将指向目录,并递归检查每个PHP文件以查看其在最近24小时内是否已更改,并将其写入日志文件,并每晚将日志文件通过电子邮件发送给我们。

因此,脚本将执行以下操作:

  • 递归扫描目录,查找24小时内已更改的所有php文件(home / user / httpdocs)
  • 将它们登录到文件(/tmp/diff-2012-05-18.log)
  • 通过电子邮件将日志文件发送到其他电子邮件地址-

  • 在我们自动化之前,它应该是易于测试的东西。

    关于如何有效地执行此操作的任何想法,我都有一种方法可以完成一些工作,但是会在服务器上造成负担。 --

    最佳答案

    对于修改后的文件部分:

    find /path/to/dir -iname '*php' -mtime -1 > /tmp/diff-$(date +%Y-%m-%d).log

    然后:
    mail user@example.com < /tmp/diff-$(date +%Y-%m-%d).log

    理想的做法是先创建一个带有正确日期的 $OUTPUT变量,以防第一个命令花费太长时间并在第二天结束。因此,将它们放在一起:
    OUTPUT=/tmp/diff-$(date +%Y-%m-%d).log
    find /path/to/dir -iname '*php' -mtime -1 > $OUTPUT
    mail user@example.com < $OUTPUT

    另外,如果您想稍微复杂一点,并且只针对一种衬板,则可以使用 tee将列表保存到文件中,然后同时将其邮寄(排序):
    find /path/to/dir -iname '*php' -mtime -1 | tee /tmp/diff-$(date +%Y-%m-%d).log | mail user@example.com

    关于shell - 需要查看24小时内哪些文件已更改并发送电子邮件(Shell脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10654091/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com