tar 명령을 사용하여 자동 백업 파일을 생성하려고 합니다.
tar -czg /home/user/BackupArchiv/snapshots/snapshot_2020-10-09 -f /home/user/BackupArchiv/backup_2020-10-09/backupfull.tar.gz /home
스크립트가 이 명령을 실행한 후에는 오류 메시지가 많이 표시되고 중단되어서는 안 되지만 중단됩니다. 대부분의 오류 메시지는 특정 파일에 액세스할 수 있는 권한이 없다고 알려주지만 다음 세 가지 오류 메시지는 나를 당황하게 합니다.
tar: remove leading / from member names
tar: remove leading / from hard link targets
tar: exiting with failure status due to previous errors
(이 모든 내용을 올바르게 번역했으면 좋겠습니다.) 이 명령에 무엇이 문제인지 잘 모르겠고 이러한 오류에 대한 페이지를 방문하는 것은 실제로 도움이 되지 않습니다.
편집: 제가 말하는 또 다른 오류 메시지는 제가 다른 사용자를 위해 만든 파일에서 나온 것입니다. 왠지 액세스할 수 없고 이 문제를 해결하는 방법을 잘 모르겠습니다. 제가 알아차린 또 다른 점은 백업 파일 자체에 문제가 있다는 점이었습니다. 명령 도중에 변경되었기 때문입니다. 하지만 가능한 해결책은 없다고 생각합니다.
답변1
권한 오류로 인해 지정된 delta 를 사용하는 tar 아카이브 생성이 손상되었습니다 -g
.
내 의견은 다음과 같습니다.
전체 디렉터리 내용을 읽을 수 있는 권한이 없습니다.
$ tar -czg ./incremental_file -f ./backupfull.tar.gz /tmp
tar: /tmp/pulse-PKdhtXMmr18n: Cannot open: Permission denied
tar: /tmp/systemd-private-43e2279e55a349ceadf346b4d247d0a7-colord.service-sitmvL: Cannot open: Permission denied
tar: /tmp/systemd-private-43e2279e55a349ceadf346b4d247d0a7-rtkit-daemon.service-pJ6qty: Cannot open: Permission denied
tar: Removing leading `/' from member names
tar: Exiting with failure status due to previous errors
(루트) 권한으로:
$ sudo tar -czg ./incremental_file -f ./backupfull.tar.gz /tmp
tar: Removing leading `/' from member names
tar: /tmp/.ICE-unix/1445: socket ignored
tar: /tmp/.ICE-unix/1629: socket ignored
tar: /tmp/.X11-unix/X0: socket ignored
tar: /tmp/.X11-unix/X1: socket ignored
tar: /tmp/ssh-Vp6I2M0cTcci/agent.1629: socket ignored
$ ls *tar.gz -alh
-rw-r--r-- 1 user user 644 Oct 13 09:33 backupfull.tar.gz
루트가 아닌 권한으로:
$ mkdir bkp_dir
$ touch bkp_dir/bla
$ touch bkp_dir/bla2
$ touch bkp_dir/bla2
$ touch bkp_dir/bla3
$ touch bkp_dir/bla4
$ touch bkp_dir/bla41
$ tar -czg ./incremental_file -f ./backupfull.tar.gz ./bkp_dir
# tar exited OK creating archive