我正在寻找一个bash脚本来检查一个文件是否在过去一小时内被修改过,如果修改了它,就会发送一个警报。 这个脚本将在Solaris和Ubuntu中使用。 我相信这不难,但我不是Linuxpipe理员。 有人可以帮忙吗?
这个怎么样?
#!/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
linux支持inotify
命令。 您可以使用它来监视文件活动 – 文件更改,文件创建,无论您想要什么,只要你想。
上面给出的查找命令不适用于开箱即用的solaris。 对于linux来说很好。 在Solaris上有两个选项:
去www.sunfreeware.com下载gnu coreutils,它将在/usr/local/bin
安装gnu find(以上版本的find)
编写一个使用touch命令的脚本,等待超过60分钟然后测试这个文件,唯一的问题是这个脚本永远在后台运行,如果你知道一些perl产生一个适合于touch -t [time string]
的时间字符串, touch -t [time string]
在过去的一个小时内创建文件这是永远运行的版本:
而真的
do touch dummy sleep 3615 # 1 hour 15 seconds
[file_i_want_to_test -nt dummy] && echo'file blah changed'| mailx -s'文件改为'me@myco.com
done