Unix Scipt Shell:特定文件发生更改时发出警报

Unix Scipt Shell:特定文件发生更改时发出警报

有人能帮我写一下脚本吗

我正在尝试制作一个脚本 shell,如果任何文件被修改,它将向 root 发出警报/发送电子邮件,并且脚本必须自动运行,因此脚本必须一直运行

我尝试做一些事情,但我需要有人纠正我或给我一些想法

#!/bin/bash
#
#
if [`find . -mtime -0` -eq date];then
    mail -s "modified files" root

    find  /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers /etc/hosts /etc/sysconfig/network /etc/resolv.conf /etc/bashrc /etc/fstab -type f -mtime -50

else
    mail -s "nothing" root
fi

答案1

我很想安装监控并使用时间戳检查。检查文件的配置就这么简单。尽管这只监视时间戳。

check file passwd with path /etc/passwd
  if changed timestamp then alert
  if changed checksum then alert

你可能还想做的另一件事是安装etckeeper,这会将您的 /etc 放入 git 或您首选的 vcs。设置每日提交以刷新任何更改。使用 VCS 中的 /etc,您可以查看何时更改了什么。

如果您使用 etckeeper 和 git 作为您的 vcs,您还可以设置一个提交后钩子,当您感兴趣的文件被修改时,它会发送一封电子邮件,这甚至可以包括所做的更改的差异。

相关内容