Конфликты резервного копирования журнала с ротацией журнала

На моих серверах у меня есть ротация журналов и скрипт резервного копирования, который, кроме всего прочего, создает резервную копию всего каталога журналов.

Для ротации журналов я использую logroatate в Linux, а newsyslog - в BSD. Для резервного копирования журнала я просто cp -Rf /var/log/ /backups/

Время от времени сценарий резервного копирования дает сбой из-за состояния гонки, возникающего, когда ротация журнала переименовывает файл журнала во время выполнения резервного копирования. Итак, я получаю что-то вроде:

cp: /var/log/messages.0: Нет такого файла или каталога

Я считаю, что моя ситуация не уникальна. Есть ли лучшие практики для преодоления этого состояния гонки и повышения надежности резервного копирования?

1 ответ

Не похоже, что logrotate предоставляет что-то, что вы можете подключить (например, pid-файл), чтобы решить эту проблему, поэтому вам нужно обойти это.

Я хотел бы изучить использование flock(1), который доступен для Linux и BSD.

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

Другие вопросы по тегам