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

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

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

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

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

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

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 .

  • rsync обновляет только временную метку
  • Будет ли rsync использовать дельта-кодирование, даже когда я копирую между локальными жесткими дисками?
  • синхронизировать конкретный файл рекурсивно, но только в подкаталогах, присутствующих в пункте назначения
  • синхронизировать два zip-архива (с минимальным вводом-выводом)?
  • Сброс соединения Rsync с помощью одноранговой сети
  • Автоматическая приостановка rsync, если цель заполнена
  • Крон: Мои кронабы вообще ничего не делают
  • Проверяет ли rsync файлы, скопированные между двумя локальными дисками?
  • Настройка анонимного демона rsync
  • rsync меняет права на мои каталоги
  • Есть ли способ отправить настраиваемые аргументы на сервер rsync?
  • Выполнение точного моментального снимка и инкрементного резервного копирования на удаленный сервер
  • Interesting Posts

    Как я могу игнорировать / удалять / исключать автозаполнение в zsh?

    bash с сокращенным текущим режиссером, включая файлы точек?

    файл (vdi) увеличивается (при двойном) размере после раскола, а затем работает кошка

    Что означает скобка в описании команды, например «mklost + found (8)»

    Можно ли перенаправить все URL-адреса wikipedia в wikipedia zero через файл hosts?

    grep окружающие символы матча

    Как создать полный макет xkb и заставить его работать?

    Gentoo Linux GPG правильно шифрует файл, прошедший через параметр, но при чтении со стандартного ввода выбрасывает «Несоответствующий ioctl для устройства»

    awk переменная как регулярное выражение

    Как изменить порядок столбцов в текстовом файле?

    что означают числа в команде show ip rule show

    Использовать вывод из головы для копирования файлов с пробелами

    Grub cryptdevice с изменениями имен устройств?

    Обновление Strange nagios-nrpe-сервера от Jessie до Stretch

    ath9k загружен, но wlan0 не существует

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