올바른 권한으로 RSnapshot 백업에서 파일을 복원하는 방법

올바른 권한으로 RSnapshot 백업에서 파일을 복원하는 방법

데비안의 새 버전을 설치했습니다. 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두 가지 사용 사례 모두에서 작동합니다.

개별 파일이 아닌 디렉터리를 반복적으로 복원하려는 경우 복사된 내용을 알려주는 -athis 와 함께 이 옵션이 유용 할 수 있습니다.-v

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose               increase verbosity

관련 정보