데비안의 새 버전을 설치했습니다. home
내 백업 버전을 사용하여 일부 파일도 복원 하고 싶습니다 etc
. 백업은 rsnapshot을 사용하여 생성되었습니다.
확실하지 않은 것은 어떤 사용자에게서 복원 명령을 실행해야 하는가입니다. 예를 들어 보겠습니다. 내 rsnapshot
파일을 복구하고 싶다고 가정해 보겠습니다 /etc/cron.d/
. 기본적으로 새로 설치된 버전에는 다음 권한이 표시됩니다.
station:~$ ls -l /etc/cron.d/rsnapshot
-rw-r--r-- 1 root root 472 Mar 26 2016 /etc/cron.d/rsnapshot
이 경우 루트 또는 sudo로 rsync 명령을 실행해야 합니다. 즉, 테스트 중입니다.
@thinkstation:~$ rsync /media/3985DAA24356D774/rsnapshot/station/daily.0/etc/etc/cron.d/rsnapshot /etc/cron.d/rTest
그러나 이로 인해 다음과 같은 권한이 발생합니다.
station:~$ ls -l /etc/cron.d/rTest
-rwxr-xr-x 1 root root 513 Sep 24 19:01 /etc/cron.d/rTest
이는 시스템 기본값과 일치하지 않습니다.
더욱 실망스러운 또 다른 예입니다. 일반 사용자(루트가 아닌, sudo가 아닌)로 rsync 명령을 실행합니다. 내가 복원한 파일은 git을 통해 버전 관리되는 프로젝트였습니다. 모든 파일이 github에 있지 않아서 복원을 했습니다. 복원 후 권한 변경으로 인해 많은 차이점이 있음을 확인했습니다(파일에 sudo 권한이 포함되지 않고 내 home
디렉터리로 이동되었기 때문에 이해할 수 없음). 그래서 예전에 백업할 때 실수를 한 것인지, 파일을 복원할 때 실수를 한 것인지 잘 모르겠습니다. 어쨌든, 이 문제를 해결하는 방법을 알고 싶습니다.
답변1
당신은 말해야동기화권한을 복원하고 싶습니다. 이를 바탕으로 man 1 rsync
다음 옵션을 사용하여 개별 파일을 복구하는 것이 좋습니다.
-p, --perms preserve permissions
-t, --times preserve modification times
-o, --owner preserve owner (super-user only)
-g, --group preserve group
-a
일반적으로 개별 파일에 필요한 것보다 더 많은 옵션이 포함된 rsync 기반 백업에서 콘텐츠를 복원하는 것이 좋습니다 . 따라서 명령은 다음과 같습니다.
rsync -ptog /media/3985DAA24356D774/rsnapshot/station/daily.0/etc/etc/cron.d/rsnapshot /etc/cron.d/rTest
또는 긴 옵션을 사용하십시오.
rsync --perms --times --owner --group /media/3985DAA24356D774/rsnapshot/station/daily.0/etc/etc/cron.d/rsnapshot /etc/cron.d/rTest
--owner
을 지정했으므로 --group
두 가지 사용 사례 모두에서 작동합니다.
개별 파일이 아닌 디렉터리를 반복적으로 복원하려는 경우 복사된 내용을 알려주는 -a
this 와 함께 이 옵션이 유용 할 수 있습니다.-v
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose increase verbosity