エックスサーバー間でファイルのやりとりをする際、作業用のローカルPCを経由するのは転送時間が多くかかったり面倒なので、リモート同期するようにしています。
以下、リモート同期させるための事前準備やコマンドなどを書きます。
rsync + ssh でリモート同期の事前準備
秘密鍵ファイル設置
同期元のサーバーの秘密鍵ファイルを同期先のサーバーの ~/.ssh/ 以下に配置します。
秘密鍵のパーミッション変更
秘密鍵ファイルのパーミッションを 600 か 400 にしないとエラーが出るためパーミッションを変更します。
$ chmod 0400 ~/.ssh/同期元の秘密鍵.key
以上で事前の準備完了です!
rsync + ssh 同期コマンド
同期コマンド実行
rsync -avz --bwlimit=10240 -e 'ssh -p 10022 -i ~/.ssh/同期元の秘密鍵.key' 同期元サーバーID@同期元サーバー番号.xserver.jp:/home/同期元サーバーID/tmp/ /home/同期先サーバーID/tmp/
初回接続時のみのメッセージ確認
※過去に接続済みのホストの場合は表示されませんので読み飛ばしてください。
初めて接続するリモートホストの場合、次のメッセージが表示されます。
「yes」と入力するとリモートホストの公開鍵の情報が「~/.ssh/known_host」に
登録され次回接続以降は表示されません。
The authenticity of host '[同期元サーバー番号.xserver.jp]:10022 ([同期元IPアドレス]:10022)' can't be established. ECDSA key fingerprint is SHA256:V0G… ECDSA key fingerprint is MD5:f2:f5:… Are you sure you want to continue connecting (yes/no)?
接続先が正しければ「yes」と入力します。
その後、パスワードを要求されます。
パスフレーズ入力
パスフレーズ入力のプロンプトが表示されたら同期元の秘密鍵に設定してあるパスフレーズを入力します。
Enter passphrase for key '/home/同期先サーバーID/.ssh/同期元の秘密鍵.key':
同期処理実行
パスフレーズ入力後、正しく同期処理が進めば次のようなメッセージが表示されます。
receiving incremental file list ./ test.php sent 46 bytes received 169 bytes 9.56 bytes/sec total size is 37 speedup is 0.17
コメント