1. rsync 설치

당연히 rsync가 설치되어 있어야 한다.


2. 일반적인 사용

rsync -avz -e "ssh -p 22" ip.sh 이 이메일 주소가 스팸봇으로부터 보호됩니다. 확인하려면 자바스크립트 활성화가 필요합니다.:/test/

password: 라면서 패스워드를 물어보게 된다.


3. expect 활용

expect <<EOF
spawn rsync -avz -e "ssh -p 22" ip.sh 이 이메일 주소가 스팸봇으로부터 보호됩니다. 확인하려면 자바스크립트 활성화가 필요합니다.:/test/
expect "password:"
send "passpass\r"
expect eof
EOF

- 결과

# rsync_test.sh
spawn rsync -avz -e ssh -p 22 ip.sh 이 이메일 주소가 스팸봇으로부터 보호됩니다. 확인하려면 자바스크립트 활성화가 필요합니다.:/test/
이 이메일 주소가 스팸봇으로부터 보호됩니다. 확인하려면 자바스크립트 활성화가 필요합니다.'s password:
sending incremental file list
testfile.txt

sent 224 bytes  received 31 bytes  510.00 bytes/sec
total size is 213  speedup is 0.84

4. 오류

"ssh -p 22" 를 'ssh -p 22' 와 같이 Single Quotation으로 사용하면 오류 발생

- 결과

# rsync_test.sh
spawn rsync -avz -e 'ssh -p 22' ip.sh 이 이메일 주소가 스팸봇으로부터 보호됩니다. 확인하려면 자바스크립트 활성화가 필요합니다.:/test/
Missing trailing-' in remote-shell command.
rsync error: syntax or usage error (code 1) at main.c(361) [sender=3.0.6]
send: spawn id exp4 not open
    while executing
"send "passpass\r""