我寻找一个bash脚本,将检查文件是否已在最后一小时被修改,如果它已被修改过的电子邮件警报。 这个脚本会在Solaris和Ubuntu的使用。 我相信它并不难,但我不是一个Linux管理员。 是否有人可以帮助?
Answer 1:
这个怎么样?
#!/bin/bash
[[ -z `find /home/spatel/ -mmin -60` ]]
if [ $? -eq 0 ]
then
echo -e "nothing has changed"
else
mail -s "file has been changed" spatel@example.com
fi
将这个脚本每小时cron作业
01 * * * * /path/to/myscript
Answer 2:
Linux支持的inotify
命令。 您可以使用它来监视文件活动 - 文件的变化,任何你想要的文件的创建,只要你想。
上面给出find命令将无法正常工作的外的开箱Solaris操作系统。 这是罚款Linux操作系统。 你必须在Solaris两种选择:
去www.sunfreeware.com和下载GNU的coreutils,这将安装在GNU查找(FIND以上版本)
/usr/local/bin
编写使用触摸命令的脚本,等待60分钟以上,然后测试文件,唯一的问题是这个脚本在后台运行永远,你能避免这一点,如果你知道一些Perl来生成适合TIMESTRING
touch -t [time string]
在过去这是永远跑版采用了时间创建文件的一种时:而真正的
do touch dummy sleep 3615 # 1 hour 15 seconds
[file_i_want_to_test -nt虚设] &&回声 '文件等等改变' | 的mailx -s '文件更改' me@myco.com
done
文章来源: Check a files Modified date and email if it has changed [closed]