Скрипт для уведомления меня о создании пользователей

Скрипт для уведомления меня о создании пользователей

Я создал скрипт из того, что нашел в Интернете, чтобы уведомлять SA о добавлении пользователей на сервер. Я настроил его с cron для запуска скрипта каждые 5 минут для отслеживания различий в файле /var/log/secure, но он все равно отправляет пустое письмо, если ничего не изменилось. Как мне отредактировать его, чтобы не отправлять письмо, если никаких изменений не было. Скрипт ниже:

file="/var/log/secure"

while cmp "$file" "${file}_bkp"; do
  sleep 2
done
diff "$file" "${file}_bkp" | grep -e useradd | mailx -s "User Added On Server" [email protected]
cp "$file" "${file}_bkp"

решение1

Я согласен с комментарием, что более производительный метод проверки — это мониторинг файла /etc/passwdвместо анализа файла журнала, который может быть потенциально большим и интенсивным для обработки. Если обнаружено, /etc/passwdчто файл изменился, вы можете сделать diff резервной копии файла, чтобы увидеть, что изменилось.

Быстрый пример, который вы можете настроить в соответствии со своими потребностями.

# One-off initial Set up
md5 -q /etc/passwd > /etc/passwd.md5
cp /etc/passwd /etc/passwd.compare
# Cron job script logic
if [[ $(md5 -q /etc/passwd) != $(< /etc/passwd.md5) ]]
then
  # The passwd file has changed, do something!
  # 
  # Diff /etc/passwd with /etc/passwd.compare to get details, etc.
  # Send an alert with details
  # 
  # Prepare for the next time a change happens.
  md5 -q /etc/passwd > /etc/passwd.md5
  cp -f /etc/passwd /etc/passwd.compare
  #
fi

Связанный контент