データ移行で使える rsync の記述方法色々。

rsync の記述方法というより ssh の書き方みたいな話だけど、メモ。

一応前提っぽいものは

  • AWS EC2 から、ロリポップ チカッパプラン サーバーへの移行(同期)
  • EC2 への接続は .pem ファイルを使用。
  • 同期というか、サーバー引っ越しの際に使ったコマンドのメモ。

こんな感じで。

 1.移行先サーバーにログインしている状態で rsync

 ssh -i 鍵 ユーザー@host

ロリポサーバーに接続している状態で、rsync コマンドを実行。

$ rsync -avz -e "ssh -i /home/users/xxx/xxx/.ssh/key.pem" ec2-user@host:/var/www/html/ /home/users/xxx/xxx/web/

オプションの -e のあとに ssh -i として key.pem を使用して 指定しているログインユーザーで EC2 に接続。

EC2 の /html/ の中身を、ロリポサーバの /web/ にコピー(同期)。

 ssh -l ユーザ -i 鍵 host

ロリポサーバーに接続している状態で、rsync コマンドを実行。

$ rsync -avz -e "ssh -l ec2-user -i /home/users/xxx/xxx/.ssh/key.pem" host:/var/www/html/ /home/users/xxx/xxx/web/

オプションの -e のあとに ssh -l として、ログインユーザーを指定し、-i として key.pem を使用して EC2 に接続。

EC2 の /html/ の中身を、ロリポサーバの /web/ にコピー(同期)。

長い、ね。

 2.移行元サーバーにログインしている状態で rsync

EC2 に接続している状態で、rsync コマンドを実行。

$ rsync -avz /var/www/html/ -e "ssh -p 2222" user@host:/home/users/xxx/xxx/web/

同期するディレクトリ /html/ を指定し、オプションの -e のあとに ssh −p(ロリポサーバーはポート指定)として、指定しているユーザーでロリポサーバーに接続。

このあと ssh の password を聞かれ、入力完了すれば、/web/ にコピー(同期)される。

 3.どちらにもログインせずに両方リモートにすると怒られる

ふと、なんて言われるのか、もしかしたら出来ちゃうんじゃないかと思ってコマンドを実行してみたけど、怒られた。

rsync -avz -e "ssh -i /home/users/1/chicappa.jp-yuichon/.ssh/wp_blog.pem" root@ec2-54-248-244-139.ap-northeast-1.compute.amazonaws.com:/var/www/html/ chicappa.jp-yuichon@ssh101.lolipop.jp:/home/users/1/chicappa.jp-yuichon/web/

The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(981) [receiver=2.6.8]

 あとがき

もっと rsync について詳しく調べるのであれば、以下が参考に。

今回はサーバー移行にあたって、rsync を使ったのだけど、同期で使ったりするのであれば、–delete とか、–exclude とか便利なオプションが他にもあるので、もうちょっと使ってみたいなと。

東京都内で仕事をしています。猫飼いたいです。30歳からピアノ始めたおじさんです。盆栽にも興味が出てきました。
最近ブログ用のTwitterアカウントを作成したので、是非フォローをしてください。@zakkiboooks

 コメントをどうぞ

  • 入力いただいたメールアドレスは公開されませんが、このブログが置いてあるサーバーに保存されます。
  • 入力いただいた情報の他に、WordPress の機能により IPアドレス を取得させていただきます。取得した IPアドレス はスパムコメントの対処ために利用され、公開することはありません。
  • 個人情報などを記入された場合、投稿いただいたコメントを表示しないか、該当箇所を編集して公開する可能性があります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。