전체 루트 파일 시스템을 /mnt에 백업할 때 rsync에 /mnt /proc 등을 제외하도록 요청하면 제외가 무시됩니다.

전체 루트 파일 시스템을 /mnt에 백업할 때 rsync에 /mnt /proc 등을 제외하도록 요청하면 제외가 무시됩니다.

나는 다양한 유형의 별자리와 함께 다양한 rsync 명령을 사용하려고 노력해 왔습니다.이건 아치 페이지에 있어요내 Linux 시스템을 SMB 저장소에 백업합니다.

여기에는 다음 버전이 포함됩니다.

  1. 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

  2. rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/mounted_smb_storage

  3. 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.

rsyncmaria-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이러한 대상의 루트가 아닌 계정의 경우 메타데이터 속성(예: 소유권)이 각 대상 파일에 기록될 수 있도록 백업 및 복구를 추가할 수 있습니다 .

관련 정보