LINUX.ORG.RU
ФорумAdmin

Бэкап на внешний диск при выключении (systemd)

 ,


0

1

До обновления на последнюю LTS ubuntu все работало исправно с помощью простой как автомат калашникова системы инициализации init.

Но тут эти чудаки решили его выпилить в угоду systemd. Пришлось ковыряться и разбираться с этим монстром, что к чему. И я даже успел полюбить его систему журналирования.

Задача: делать бекап при выключении компа. На данный момент копировать файлы на внешний жесткий диск, но с перспективой подключения всяких облаков и прочих клевых штук.

Как я это реализовал после гугления.

Сделал файл сервиса: /etc/systemd/system/backup.service

Выполнил команду: sudo systemctl enable backup.service

[Unit]
Description=Backup script
RequiresMountsFor=/mnt/usb-WD_My_Passport_0742_575831314536315631383533-0:0-part1

[Service]
ExecStop=/home/stepan/bin/backup
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Короче все работает как часы, но меня смущает запись RequiresMountsFor. Вдруг я захочу другой диск подрубить, или флешку. Или система опять захочет изменить директорию автоматического монтирования.

Короче я в этом деле ламер, и хотелось бы почитать умных дядек, как это все дело правильно сделать?

П.С. shutdown.target срабатывает после отмонтирования диска, так что не катит.



Последнее исправление: istepan (всего исправлений: 2)

Вдруг я захочу другой диск подрубить, или флешку.

/etc/systemd/system/backup@.service

...
RequiresMountsFor=/mnt/%i
...
systemctl enable backup@you_mountpoint.service

Difrex ★★★★
()

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

/etc/fstab

/dev/disk/by-id/usb-Generic_STORAGE_DEVICE-0:0 /mnt/usb vfat  defaults,x-systemd.automount,x-systemd.device-timeout=5,noauto 0 0

Difrex ★★★★
()
Ответ на: комментарий от droserasprout

Подошел /dev/disk/by-label/

Спасибо за подсказку.

istepan
() автор топика
Ответ на: backup_linux_on_shutdown от LeNiN

After=network.target

Т.е. после этого диски останутся примонтированными?

П.С. Спасибо большое! Если бы было на github, поставил бы звездочку)

istepan
() автор топика
Ответ на: комментарий от istepan

After=network.target

Там немного другая логика: сервис запускается (ExecStart=/bin/true) после подключения сетевых дисков и останавливается (ExecStop=/usr/bin/rsync_backup_on_shutdown) до их отключения.

Я поначалу пытался указать WantedBy=shutdown.target вместе с Before=umount.target, но похоже что так нельзя.

Ещё можете подсмотреть файл https://github.com/mvo5/unattended-upgrades/blob/master/debian/unattended-upg...

Регистрируйтесь на гитлабе, форкайте проект, делайте доработки, присылайте pull-запросы :)

LeNiN ★★
()

Задача: делать бекап при выключении компа

А если там терабайт новых файлов?

anonymous
()
Ответ на: комментарий от anonymous

Бэкапятся проекты, объем которых не превысит гигабайт.

istepan
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.