предотвращать параллельную работу резервного копирования

В моем сценарии /usr/local/bin/backup , который я вызываю каждый час из /etc/crontab , я использую rsync для копирования данных на сервер за пределами сайта. Все это прекрасно работало даже в тех случаях, когда у нас было несколько новых данных, чем через час.

На прошлой неделе кто-то скопировал 11GB-файл в раздел данных, и когда я узнал, что на следующий день было запущено 14 rsync-программ, каждый из которых не получает пропускной способности, и каждый, вероятно, работает над одним и тем же огромным файлом. Я убил их всех (прежде чем осознать, что я должен был сдержать первый из них), остановил работу cron и запустил скрипт резервного копирования вручную.

Я могу записать файл в скрипте перед запуском rsync и проверить скрипт, если этот файл уже существует, чтобы предотвратить параллельное выполнение резервного копирования. Есть ли более простой способ сделать это?

Моя запись /etc/crontab :

 5 * * * * root /usr/local/bin/backup 

  • Использование rsync + cron для синхронизации машины за брандмауэром с моим Dropbox
  • Использование опции -remove-source-files для rsync
  • Имейте rsync уважать файлы btrfs copy-on-write
  • Rsync, но исключить другие файлы на одном пути
  • rsync over ssh без ввода пароля каждый раз
  • Как заставить rsync перезаписывать архивные файлы только для чтения?
  • Что произойдет, если я переведу жесткие диски, используемые Rsync на другой компьютер, и синхронизирую их с ним?
  • Как я могу вызвать запрос на кодовую фразу ssh key во время выполнения скрипта?
  • One Solution collect form web for “предотвращать параллельную работу резервного копирования”

    Существуют разные способы сделать это, но IMO проще всего вставить стаю перед командой в файле crontab:

     5 * * * * root flock -n /var/lock/backup /usr/local/bin/backup 

    Файл /var/lock/backup – это блокировка, используемая flock, и -n немедленно делает команду сбоем, если блокировка уже существует.

    Разумеется, это означает, что если одна резервная копия занимает 1 час и 1 минуту, то следующая начинается через 59 минут. Если это проблема, вы можете изучить использование -x .

    Interesting Posts

    Мониторинг портов при текущих соединениях

    файл отсутствует на рабочем столе, но его можно увидеть с помощью «ls» в каталоге «Рабочий стол»

    Разберите несколько тысяч строк txt в строки и столбцы

    LVM заполняет все оставшееся место на диске, но недостаточно места на корневом разделе

    Инкремент оглядывается назад в файле конфигурации ежедневно +1

    чтение карты, убивающее мою батарею, на macbook pro работает Debian

    Гость KVM как шлюз по умолчанию для мостовой сети

    Apache показывает страницу Blank для PHP

    Сценарий Bash: элементы массива, содержащие пробельный символ

    Невозможно остановить скрипт bash с помощью Ctrl + C

    du показывает полностью разные размеры папки для * и имени папки

    Как окончательно отключить Ctrl-s в терминале?

    Можете ли вы прервать мягкое крепление NFS или нужно ли время ожидания?

    Ошибка DRM Intel DP

    Удалите файлы, которые предоставляются по каналу

    Linux и Unix - лучшая ОС в мире.