こんにちは。
先日にサーバ移設案件に携わる機会があって、踏み台サーバを経由して、目的のサーバにデータを同期する必要がありました。
その際に先輩に教えてもらった方法をメモレベルで残しておこうと思います。
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 ファイルを作成することで、踏み台サーバを経由して接続が出来る。
・秘密鍵は事前に配置しておく必要がある。