データ移行で使える 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 とか便利なオプションが他にもあるので、もうちょっと使ってみたいなと。

コメントを残す

  • コメント欄には個人情報を入力しないようにしてください。

  • 入力いただいたメールアドレスは公開されませんがサーバーに保存されます。
  • 入力いただいた情報の他に、IPアドレスを取得させていただきます。取得した IPアドレス はスパム・荒らしコメント対処ために利用され、公開することはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください