그래서 저는 Linux 시스템이 설치된 USB 스틱을 가지고 있으며 계획은 다음과 같습니다.
USB 플래시 드라이브에 백업 프로그램을 설치하여 시스템을 서버에 백업하고 싶습니다. 서버에는 데이터가 기록될 다른 USB 스틱(정확한 모델 및 크기)이 설치되어 있습니다.
USB 스틱 A를 분실한 경우 집에 가서 서버에서 USB 스틱 B를 제거하고 아무 일도 없었던 것처럼 사용하고 싶습니다.
이 rsync 명령줄이 있습니다.
rsync -avPAHXxz --numeric-ids --exclude='/dev' --exclude='/sys' --exclude='/efi' --exclude='/proc' --exclude='/run' --exclude='/mnt' --exclude='/tmp' --exclude='/home/*/.cache' --exclude='/root/.cache' --delete -e 'sudo -u user ssh' -- / root@server:backups/rootfs
비슷한 디렉토리가 있습니다 /efi
.
이는 백업을 예약한 다음 서버에서 복원할 때 유용합니다. 하지만 내 목표가 백업 자체를 최종적으로 사용 가능한 시스템으로 만드는 것인데 이것이 여전히 강력한 솔루션인지 궁금합니다.
보너스 질문: 새 시스템에서는 파티션의 UUID가 다릅니다. 이는 USB 스틱을 사용하기 전에 BI가 들어가서 UUID를 변경해야 함을 의미합니다. 나는 bash 스크립트를 사용하여 이 작업을 수행할 수 있다고 확신하므로 문제가 되지 않습니다. 하지만 제가 알아야 할 다른 유사한 사항이 있습니까? 시스템이 작동하려면 다른 인스턴스별 데이터를 교환해야 합니까?
답변1
아카이브 모드를 사용하고 run, sys, tmp, run, proc 등과 같은 임시 디렉터리를 제외하세요. 이 링크에서 자세한 내용을 확인할 수 있습니다. 입장:https://wiki.archlinux.org/title/rsync#As_a_backup_utility
보너스 질문에 대해서는 dd를 사용하여 좋은 해결책을 제시합니다.
백업: dd if=/dev/sda | gzip -9 > backup.img.gz
복원: zcat backup.img.gz dd=/dev/sda |
하지만 지금은 시스템이 실행되어서는 안 됩니다. 그렇지 않으면 문제가 발생합니다. 이 목적을 위해 라이브 배포를 시작할 수 있는 것과 같습니다.