こんにちは。
先日にサーバ移設案件に携わる機会があって、踏み台サーバを経由して、目的のサーバにデータを同期する必要がありました。
その際に先輩に教えてもらった方法をメモレベルで残しておこうと思います。
rsync 用ユーザ作成
useradd rsync su rsync cd ~ mkdir .ssh chmod 700 .ssh
SSH 設定
vi /home/rsync/.ssh/config
===============================================
Host step-new
HostName 111.111.111.111
User step-new-user
IdentityFile ~/.ssh/id_rsa_step-new.pem
Host step-old
ProxyCommand ssh -W %h:%p step-new
HostName 222.222.222.222
User step-old-user
IdentityFile ~/.ssh/id_rsa_step-old.pem
Host target-server
ProxyCommand ssh -W %h:%p step-old
HostName 333.333.333.333
User target-server-user
IdentityFile ~/.ssh/id_rsa_target.pem
===============================================vi ~/.ssh/id_rsa_step-new.pem vi ~/.ssh/id_rsa_step-old.pem vi ~/.ssh/id_rsa_target.pem chmod 600 ~/.ssh/id_rsa_step-new.pem chmod 600 ~/.ssh/id_rsa_step-old.pem chmod 600 ~/.ssh/id_rsa_target.pem
データ同期
mkdir -p /var/tmp/rsync_results/test1 nohup time rsync -avzrn --rsync-path="sudo rsync" target-server:/home/target-server-user/ /home/purpose/ 1>/var/tmp/rsync_results/test1/result_$(date +"%Y%m%d").log 2>/var/tmp/rsync_results/test1/error_$(date +"%Y%m%d").log & nohup time rsync -avzr --rsync-path="sudo rsync" target-server:/home/target-server-user/ /home/purpose/ 1>/var/tmp/rsync_results/test1/result_$(date +"%Y%m%d").log 2>/var/tmp/rsync_results/test1/error_$(date +"%Y%m%d").log &
補足
・.ssh/ 以下に config ファイルを作成することで、踏み台サーバを経由して接続が出来る。
・秘密鍵は事前に配置しておく必要がある。