检查是否已经改变了修改文件的日期和电子邮件的[关闭](Check a files Modified

2019-08-05 15:41发布

我寻找一个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两种选择:

  1. 去www.sunfreeware.com和下载GNU的coreutils,这将安装在GNU查找(FIND以上版本) /usr/local/bin

  2. 编写使用触摸命令的脚本,等待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]
标签: linux solaris