나는 오후 내내 rsync 작업을 하고 있었습니다. rsync 서버를 설정했지만 사용 방법을 모르겠습니다.
66과 12라는 두 대의 머신이 있습니다. 66이 서버이고 66~12의 데이터를 백업하고 싶기 때문에 rsync를 사용합니다.
나는 다음을 수행했습니다.
66세:
sudo apt-get install xinetd
sudo vim /etc/xinetd.d/rsync
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
sudo nano /etc/rsyncd.conf
max connections = 2
log file = /var/log/rsync.log
timeout = 300
[wwwroot]
comment = Public Share
path = /home/wwwroot
read only = no
list = yes
uid = nobody
gid = nogroup
auth userusers = user
secrets file = /home/rsync.secrets
sudo /etc/init.d/xinetd restart
12:
rsync -v [email protected]::wwwroot /home/young001/backup --password-file=/home/rsync.pass
이는 우리에게 다음과 같이 알려줍니다.
skipping directory .
sent 4 bytes received 6 bytes 2.86 bytes/sec
total size is 0 speedup is 0.00
로그는 다음과 같습니다
2013/06/12 03:18:18 [30477] name lookup failed for 125.221.225.12: Name or service not known
2013/06/12 03:18:18 [30477] connect from UNKNOWN (125.221.225.12)
2013/06/12 10:18:18 [30477] rsync on ctp/ from young001@UNKNOWN (125.221.225.12)
2013/06/12 10:18:18 [30477] building file list
2013/06/12 10:18:18 [30477] skipping directory .
2013/06/12 10:18:18 [30477] sent 98 bytes received 54 bytes total size 0
2013/06/12 03:19:59 [30484] name lookup failed for 125.221.225.12: Name or service not known
2013/06/12 03:19:59 [30484] connect from UNKNOWN (125.221.225.12)
2013/06/12 10:19:59 [30484] rsync on ctp/ from young001@UNKNOWN (125.221.225.12)
2013/06/12 10:19:59 [30484] building file list
2013/06/12 10:19:59 [30484] skipping directory .
2013/06/12 10:19:59 [30484] sent 98 bytes received 54 bytes total size 0
디렉토리가 비어 있다는 것을 알려주는 것 같은데 어느 디렉토리가 비어 있는지는 알 수 없습니다.
/home/young001/backup은 빈 디렉터리이지만 /home/wwwroot는 빈 디렉터리가 아닙니다.
wwwroot를 백업에 동기화하고 싶은데, 제가 뭘 잘못하고 있나요?
답변1
12
상자(서버에서 백업을 가져온 상자) 에서 다음 명령을 사용합니다.
rsync -av [email protected]::wwwroot /home/young001/backup --password-file=/home/rsync.pass
이 -a
옵션은 rsync 아카이브 모드입니다. 디렉터리로 재귀하여 거의 모든 내용을 보존하도록 설계되었습니다. rsync man을 확인해보세요.
-a
Rsync는 기본적으로 디렉터리를 반복적으로 복사하지 않으므로 또는 옵션을 사용해야 합니다 -r
.
답변2
1.원격 디렉터리를 로컬 디렉터리에 동기화합니다.
sudo rsync -r -a -v [email protected]:/path/to/remote/directory/ /path/to/local/directory/ 2>&1
2. 그러면 로컬 디렉터리가 원격 디렉터리에 동기화됩니다.
sudo rsync -r -a -v /path/to/local/directory/ [email protected]:/path/to/remote/directory/ 2>&1
, 표준 출력( )을 2>&1
나타냅니다 . 표준오차( )를 나타낸다 .1
stdout
2
stderr
따라서 2>&1
표준 출력도 리디렉션되는 곳으로 표준 오류가 전송된다는 의미입니다. 전송되기 때문에 /dev/null
요청에 의해 모든 출력이 완전히 무시됩니다. 이렇게 하면 오류가 발생하면 오류가 무엇인지 확인할 수 있습니다.
--delete : delete files that don't exist on sender (system)
-v : Verbose (try -vv for more detailed information)
-e "ssh options" : specify the ssh as remote shell
-a : archive mode
-r : recurse into directories
-z : compress file data
자세한 내용은rsync
이것을 사용하십시오.