Добавление кода выхода в файл журнала

Добавление кода выхода в файл журнала

Я создал скрипт bash, который запускает автоматизированное резервное копирование EBS на AWS. Он запускается через cronjob:

0 2 * * * /bin/bash /root/backup_snapshots.sh > backup.log 2>&1

Это работает отлично, но следующее, что я хочу сделать, это добавить код выхода для того, успешно ли запущен скрипт (чтобы я мог настроить проверку Nagios). Есть несколько вещей, которые я собираюсь сделать:

  1. Создайте файл backup.log в каталоге /var/log/backup/.
  2. Настройте logrotate на ежедневную ротацию, чтобы упростить обнаружение этой проверки.

Но у меня есть один вопрос: возможно ли заставить cron записать код выхода в файл backup.log, который я создал? Или мне следует использовать такой тип реализации:

Создайте запись в crontab со скриптом, который может запустить реальный скрипт И иметь код завершения, подобный следующему:

#!/bin/bash
/root/backup_snapshots.sh 2> /dev/null
if [ $? -eq 0 ]
then
  echo "PASS"
else
  echo "FAIL" >&2
fi

Я хочу сделать это как можно проще, так что если cron может это сделать, здорово! Если нет, то следующим лучшим решением будет создать скрипт bash, который выполняет backup_snapshots.sh и запускается через cron?

решение1

#!/bin/bash
exec 1>/var/log/backup/backup_sbapshots.log 2>&1
if /root/backup_snapshots.sh
then
  echo "PASS"
else
  echo "FAIL"
fi

Создайте скрипт cron, как показано, который поместит статус выполнения cronjob в файл журнала резервного копирования. Обратите внимание, что нигде не упоминается переменная, $?поскольку ifоператор владеет своей собственной.

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