나는 다양한 유형의 별자리와 함께 다양한 rsync 명령을 사용하려고 노력해 왔습니다.이건 아치 페이지에 있어요내 Linux 시스템을 SMB 저장소에 백업합니다.
여기에는 다음 버전이 포함됩니다.
rsync -aAXv --exclude=/dev/ --exclude=/proc --exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/* --exclude=/media/* --exclude=/cdrom/* --exclude=/lost+found / /mnt/mounted_smb_storage
rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/mounted_smb_storage
rsync -aAXHv --exclude-from=/path/to/excludelist.txt / /mnt/mounted_smb_storage
따옴표가 있든 없든...
루트 디렉토리를 소스로 사용하는 한 항상 --exclude 명령을 무시하는 것 같습니다. 일단 /mnt
소스를 사용 하고 사용 --exclude /mnt/*
하면 디렉토리가 무시됩니다.
저는 Debian 11과 rsync 버전 3.2.3 프로토콜 버전 31을 사용하고 있습니다.
답변1
rsync
를 제거하여 이 문제를 해결했습니다 apt purge rsync
.
rsync
maria-db
제거 시 패키지에 대한 이상한 종속성
별도로 다시 설치한 후 rsync
명령이 다시 예상대로 작동했습니다.
답변2
다음과 같이 쓰는 것이 좋습니다.
rsync -aAXv --exclude=/dev/ --exclude=/proc/ --exclude=/sys/ --exclude=/tmp/ --exclude=/run/ --exclude=/mnt/ --exclude=/media/ --exclude=/cdrom/ --exclude=lost+found/ / /mnt/mounted_smb_storage
또는 중괄호 확장을 이해하는 쉘을 사용하십시오.
rsync -aAXv --exclude=/{dev,proc,sys,tmp,run,mnt,media,cdrom}/ --exclude=lost+found/ / /mnt/mounted_smb_storage
각 제외 항목의 끝은 해당 항목이 디렉터리임을 /
나타냅니다 . rsync
리더는 /
각각을 소스 경로의 상단에 연결합니다. 제외된 디렉터리 자체도 복사본에서 생략됩니다.
더 좋은 점은 SMB 스토리지 서버에서 실행할 수 있는 경우 rsync
네트워크 복사본을 사용하여 후속 복사본을 보다 효율적으로 만들 수 있다는 것입니다. 예를 들어,
rsync -aAXv --exclude=/{dev,proc,sys,tmp,run,mnt,media,cdrom}/ --exclude=lost+found/ / user@storageServer:/mnt/mounted_smb_storage
-M--fake-super
이러한 대상의 루트가 아닌 계정의 경우 메타데이터 속성(예: 소유권)이 각 대상 파일에 기록될 수 있도록 백업 및 복구를 추가할 수 있습니다 .