저는 Server1(/mnt/Server1/Backup 폴더)에 /home/User1(Client1)의 백업 복사본을 보관하기 위해 수년 동안 rsync를 사용해 왔습니다. 이것은 생산 기계가 아닙니다. 이 폴더는 Client1 시작 시 /mnt/Server1/Backup 폴더에 마운트된 NFS입니다. 따라서 Server1의 /mnt/Server1/Backup은 Client1의 NFS와 함께 /mnt/Server1/Backup에 마운트됩니다.
두 시스템 모두에서 /mnt/Server1/Backup은 User1/Group1에 속하며 770의 권한을 갖습니다.
매일 폴더(/mnt/Server1/Backup)에 백업할 목적으로 Client1에 rsnapshot을 설치했습니다. User1은 이미 Client1과 Server1에 존재하며 비밀번호 없이 키를 사용하여 SSH를 수행할 수 있습니다.
/etc/rsnapshot.conf에 다음을 추가했습니다.
##############################
### SNAPSHOT ROOT DIRECTORY ##
##############################
snapshot_root /mnt/Server1/Backup/
##############################
### BACKUP POINTS/ SCRIPTS ###
##############################
# LOCALHOST
backup /home/User1 Client/
"rsnapshot configtest"를 시작하면 "Syntax OK"라는 메시지가 나타납니다.
"rsnapshot -t alpha"를 실행하면 다음과 같은 결과가 나타납니다.
[dom ott 14, 01:12 ][user1@client1:~]rsnapshot -t alpha
echo 23033 > /var/run/rsnapshot.pid
mkdir -m 0755 -p /mnt/Server1/Backup/rsnapshot/alpha.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
/home/Client1/ /mnt/Server1/Backup/rsnapshot/alpha.0/Client1/
touch /mnt/Server1/Backup/rsnapshot/alpha.0/
[dom ott 14, 01:12 ][user1@client1:~]
모든 것이 괜찮은 것 같습니다. 그러나 옵션 없이 실행하면 다음과 같은 결과가 나타납니다.
[dom ott 14, 01:12 ][user1@client1:~]rsnapshot alpha
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot alpha
----------------------------------------------------------------------------
ERROR: Could not write lockfile /var/run/rsnapshot.pid: Permission denied
rsnapshot은 Client1의 기본 파일 시스템에 PID를 쓸 수 있는 충분한 권한이 없기 때문에 불평합니다.
그렇지 않으면 sudo를 사용하면 안 된다고 생각합니다. 비밀번호를 묻지 않고 어떻게 cronjob을 만들 수 있나요?
임시 데비안 사용자로 "백업"할 수 있습니다. 그런데 PID 문제를 어떻게 해결합니까?
답변1
실제로 sudo 옵션 자체는 /mnt/Server1/Backup 폴더에 쓸 수 없다고 해서 작동하지 않습니다.
[dom ott 14, 01:15 ][antonio@gaia:~]sudo rsnapshot alpha
[sudo] password di User1:
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot alpha
----------------------------------------------------------------------------
ERROR: Could not mkpath("/mnt/Server1/Backup/rsnapshot/alpha.0/", 0, 0755);
해결 방법을 찾았습니다. rsnapshot에는 PID 파일이 기록되는 위치를 설정하는 옵션이 있습니다. 이것이 내가 설정한 방법입니다:
lockfile /mnt/Server1/Backup/rsnapshot
위 폴더에도 백업 그룹을 할당했습니다. 마지막으로 NFS를 통해 Client1에 원격 폴더를 마운트했기 때문에 rsnapshot이 SSH를 사용하지 않는다는 것도 깨달았습니다.