Автоматически rsync при горячем подключении диска SATA (отсек, а не ESATA)

Автоматически rsync при горячем подключении диска SATA (отсек, а не ESATA)

чтобы поддерживать резервное копирование, я хочу запустить определенную команду rsync, когда я вставляю определенный жесткий диск sata в любой или все мои отсеки hotswap. Можно ли это сделать с помощью uuids, чтобы как-то отслеживать диски? всякий раз, когда я ищу, я нахожу udev для usb-дисков, может ли это сработать и здесь?

решение1

Я использую для этого простое правило udev. Резервный диск помечается определенной меткой тома (используйте tune2fs, чтобы установить ее). Правило udev запускает скрипт:

$ cat /etc/udev/rules.d/90-backup.rules 
ACTION=="add", ENV{ID_FS_LABEL}=="backup", RUN+="/usr/local/bin/backup.sh"

(вы можете использовать ENV{ID_FS_UUID}="some-uuid", если предпочитаете не использовать метки томов)

Скрипт просто запускает rsync:

$ cat /usr/local/bin/backup.sh
#!/bin/bash

mnt=/media/backup

(
mount $mnt
rsync -avx --exclude lost+found /home/ $mnt/backup/
umount $mnt
) > /dev/null 2>&1 &

udev ожидает, что команда RUN="" будет кратковременной, поэтому скрипт запускает rsync в фоновом режиме.

Это будет работать для любого типа диска и/или интерфейса — при условии, что udev получит уведомление о том, что диск был добавлен.

Связанный контент