我需要一个shell脚本,我可以将其安排为Cron作业。它将指向一个目录并递归检查每个PHP文件以查看它是否在过去24小时内发生了更改,并将其写入日志文件并每晚将日志文件通过电子邮件发送给我们。
因此脚本将执行以下操作:
它应该是在我们自动化之前很容易测试的东西。
关于如何以有效的方式做到这一点的任何想法,我有一个方法可以做到这一点,但它在服务器上的负担。 -
答案 0 :(得分:2)
对于修改过的文件部分:
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
将列表保存到文件并同时邮寄(排序):< / p>
find /path/to/dir -iname '*php' -mtime -1 | tee /tmp/diff-$(date +%Y-%m-%d).log | mail user@example.com