SATA 드라이브를 핫플러그할 때 자동으로 재동기화(베이는 esata가 아님)

SATA 드라이브를 핫플러그할 때 자동으로 재동기화(베이는 esata가 아님)

백업을 계속 유지하기 위해 특정 SATA 하드 드라이브를 핫스왑 베이 중 일부 또는 전부에 삽입할 때 특정 rsync 명령을 실행하고 싶습니다. 드라이브를 추적하기 위해 uuid를 사용하여 이 작업을 수행할 수 있습니까? 검색할 때마다 USB 드라이브용 udev를 찾았는데, 여기서도 작동할 수 있나요?

답변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가 드라이브가 추가되었다는 알림을 받는 한 모든 유형의 드라이브 및/또는 인터페이스에서 작동합니다.

관련 정보