systemd: изящно сбой резервного копирования, когда внешний диск не подключен

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

Единицы службы резервного копирования имеют следующую форму (по одному на место резервного копирования, у этого есть имя файла rsnapshot-external@.service ):

 [Unit] Description=%i rsnapshot external backup RefuseManualStart=no RefuseManualStop=yes [Service] Type=oneshot ExecStart=/usr/bin/rsnapshot -c /etc/rsnapshot-external.conf %i 

Единицы таймера имеют следующую форму (по одной на периодичность, у этого есть имя файла rsnapshot-weekly@.timer ):

 [Unit] Description=weekly rsnapshot backup to %i RefuseManualStart=no RefuseManualStop=no [Timer] OnCalendar=weekly Persistent=true Unit=rsnapshot-%i@weekly.service [Install] WantedBy=default.target 

В файле конфигурации резервного копирования (например, /etc/rsnapshot-external.conf ) место резервного копирования указывается через точку монтирования (например, /mnt/backup/external ). Сценарий резервного копирования достаточно умен в том смысле, что он не будет работать, если фактический резервный диск не установлен (а именно, если он не находит определенный каталог в точке монтирования).

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

 LABEL=backup-external /mnt/backup/external ext4 noauto,noatime,nosuid,nodev,x-systemd.automount,x-systemd.device-timeout=1 0 0 

x-systemd.automount гарантирует, что диск будет установлен после доступа точки монтирования. (Я не знаю, эффективен ли тайм-аут, установленный с x-systemd.device-timeout=1 )

В случае, когда резервный диск не подключен или какая-либо другая причина, из-за которой резервный диск не может быть смонтирован своевременно, я хотел бы, чтобы служебный блок вышел из строя изящно. Под этим я подразумеваю, что (i) он не должен оставаться активным, а также (ii), что попытка не считается успешной, т. Е. Всякий раз, когда резервный диск становится доступным, резервное копирование следует повторить.

У меня есть требование (i), потому что после выключения эта служба в противном случае убивается только после «большого» тайм-аута, что неудобно. (Возможно, я могу установить этот тайм-аут специально для этой службы?)

Требование (ii) необходимо, так как в противном случае дозаполнение ежемесячной резервной копии займет не менее месяца, и тогда это будет многомесячная резервная копия.

Итак, какие изменения мне необходимо сделать для достижения моей цели создания резервной установки, которая изящно не соответствует моим требованиям?

Interesting Posts

Руководство для программистов Unix относится к Linux?

Разделить массив Zsh от подоболочки по переводу строки

Совместимый беспроводной маршрутизатор?

Зачем использовать install, а не cp и mkdir?

установить с помощью YUM без прав root

Извлечь часть значения из пары ключ-значение, разделенной двоеточием в Linux

Аутентификация пользователей через LDAP с использованием nginx

Могу ли я задержать запуск скрипта systemd при загрузке?

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

Жесты с несколькими касаниями в GNOME 3.14

Какую файловую систему следует использовать при передаче файлов между системами Linux?

Использовать псевдонимы в качестве пользовательских команд в терминаторе

Почему ffmpeg удален из Debian?

Как это «&» в конце моей команды быстро запустило скрипт?

предоставлять разрешение на чтение, запись, выполнение, но не может быть удалено другими пользователями

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