Я написал небольшую строку, которая будет отправлять мне электронное письмо при изменении списка файлов - я использовал sha512 для создания списка хэшей, а затем периодически проверяю, совпадают ли эти хэши.

*/5     *   *   *   *   /usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" example@example.org

Он отлично работает в командной строке с:

/usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" example@example.org

Как только я запускаю его как cronjob, он отправляет электронную почту каждый раз, когда запускается с сообщением об ошибке, а не только тогда, когда проверка sha512sum должна завершиться неудачей.

Есть ли что-то глупое, что я упустил в спешке?

Я забыл упомянуть, что я работаю на машине с Ubuntu.

2 ответа2

1

После разбора одной строки и удаления аспектов уведомлений я обнаружил, что мне нужно перейти в правильный каталог перед запуском команды sha512sum .

Итак, теперь это выглядит так:

*/5     *   *   *   *   cd /var/www; /usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" example@example.org

Пути к файлам в sha512.sumlist являются относительными, поэтому команду нужно запускать в папке, содержащей файлы для проверки. В моем случае это просто /var/www .

0

Я думаю, что вы забыли указать пользователя, как root .

*/5     *   *   *   *   root    /usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" example@example.org

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .