모든 Linux 배포판에서 시스템의 Rsync 백업 복원

모든 Linux 배포판에서 시스템의 Rsync 백업 복원

다음 별칭을 사용하여 Ubuntu 22.04 LTS의 루트 디렉터리를 외부 플래시 드라이브에 백업했습니다.

alias backup='sudo rsync -aAXHS --info=progress2 --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*", "/USBDrive", "/lost+found"} / /USBDrive && notify-send -t 10000 "Backup complete"'

내 USB 드라이브의 파일 시스템은 ext4입니다.

이것이 최선의 접근 방식이 아닐 수도 있다는 것을 알고 있지만 몇 가지 문제가 발생하여 문제가 해결되는지 확인하려면 다시 설치해야 합니다.

다음 기사를 보았는데 더 쉬워 보여서 ​​나중에 시도해 볼 수도 있습니다.

전체 루트 디렉터리(/)를 복사하여 운영 체제를 새 컴퓨터로 전송하시겠습니까?

루트 파일 시스템 백업 및 복구(Ubuntu 20.04)

그래서 제 질문은 '현재 보유하고 있는 백업에 대한 제안 사항이 있습니까?'입니다. 내가 알 수 있듯이 루트 디렉터리를 복원하는 것은 번거로워 보입니다. 꽤 쉬운 방법을 아는 사람이 없다면 그냥 홈 디렉토리를 복원하면 될 것 같습니다. 저는 모든 Linux 배포판에서 홈 디렉터리를 백업하고 복원하는 방법을 찾고 있습니다(바람직하게는 다른 것을 설치하지 않고: 이것이 rsync 명령을 사용하게 된 동기였습니다). 동일한 상위 버전이 없는 새 배포판(예: Debian과 Arch)으로 이동하는 경우 동일한 컴퓨터에 동일한 OS를 다시 설치한 후 복원하기 위해 rsync 명령에서 소스와 대상을 바꾸는 것만 큼 간단합니까? Linux? git 저장소도 내 홈 디렉터리에 복제되어 있습니다. 이것이 어떤 차이가 있는지, 그리고 이것이 저장소에 대한 일반적인 관행인지는 확실하지 않습니다. Ubuntu 22.04 LTS에서 복원하면 백업이 유지됩니다. .apt 패키지 관리자가 설치한 패키지입니다.

고쳐 쓰다:

roaima의 답변은 대상 디스크를 마운트한 후 라이브 디스크를 사용하여 나에게 효과적이었습니다. 이것은 apt 패키지 관리자를 사용하여 설치된 패키지를 유지하지 않았지만 그럴 것으로 예상했습니다. 따라서 git 저장소에서 프로그램을 다시 빌드해야 합니다. 다른 상위 운영 체제를 사용하는 다른 운영 체제로 마이그레이션하는 경우. Arch Linux는 루트 트리가 다르기 때문에 홈 디렉토리 이상의 것을 복원하고 있는지 잘 모르겠습니다.

답변1

백업 명령이 누락되었지만 --numeric-ids로컬로 복사하는 것이므로 문제가 되지 않을 것입니다.

백업을 복원하려면 소스 및 대상 매개변수를 바꾸십시오. --dry-run테스트할 때 이 옵션을 염두에 두십시오.

홈 디렉터리만 복원하도록 선택할 수 있습니다. 복사가 완료되면 소유자와 그룹이 올바른지 확인하십시오. (새 OS를 설치했으므로 대상 사용자의 uid 및 gid가 백업과 동일하다고 가정하면 안 됩니다.)

find /home/whoever -user 12345 -exec chown newuser {} +
find /home/whoever -group 12345 -exec chgrp newgroup {} +

관련 정보