最初に
いつもQiitaは見る専でしたがいつも助けていただいているので、誰かの役に立てばと初投稿します。使い間違い、ミス等あればお知らせください。
何がしたいのか
サーバーのデータをまるごと引っ越しする時、引越し元データ容量が1GBとかあってそれをFTPでダウンロードして引越し先にアップロード・・・とかもうあり得ないなあと。デザイナーだけど黒い画面使ってサーバー間でデータ転送できたらいいなあと思って調べました。
特にWordPressサイトでたくさんメディアアップしていると結構なサイズになるので、いちいちダウンロード/アップロードしていらんないなあと。
SCPでローカル/リモートのファイル転送はできることは知っていたのですが、サーバー間転送をググってやっていたところ躓いたので色々と調べたところ実現できたのでその時の内容を残しておきます。
殴り書きごめんなさい。あくまでデザイナー向けという目線での備忘録です。
前提条件
・引越し元サーバー
さくらインターネット
・引越し先サーバー
エックスサーバー
・SSH接続はできる
いってみよう
さくらサーバーにSSH接続してデータをまるごとバックアップ
さくらサーバーにSSH接続し(割愛)、まるごとディレクトリをtar圧縮します。さくらのwwwディレクトリを「www_bkup.tar.gz」という名称でまるごと圧縮する場合は以下のコマンド。
$ tar cvzf www_bkup.tar.gz www
このデータをエックスサーバーにもっていきます。
エックスサーバーにSSH接続、公開鍵認証データのアップ
エックスサーバーにSSH接続します。ちなみにエックスサーバーは公開鍵認証での接続のため事前に設定しておく必要があります。これはウェブ上にやり方がたくさん落ちているので割愛します。
引越し先のディレクトリまでのパスをpwd
等で確認しておきましょう。
下記のようなパスになると思います。
/home/XSERVERのID名/ドメイン名/public_html/引越し先のディレクトリ
Xserverの公開鍵認証データをさくらサーバーにアップロード
すぐにでもSCPコマンドを使ってサーバー間でのファイル転送を行いたいところですが、前述のとおりエックスサーバーは公開鍵認証でのアクセスでないとSSH接続できません。
そのため、さくらサーバー側に公開鍵認証で必要な「id_rsa」データをアップロードします。
id_rsa
id_rsa.pub
ローカルに保存しているエックスサーバー用の上記ファイルをさくらの下記の場所へアップします。
.ssh
www
と同じ場所にあるはずです。
パーミッションの変更
id_rsaファイルをアップしたら、このままではパーミッションエラーでSCPが実行できないため、パーミッションを変更します。
chmod 600 /home/サーバー名/.ssh//id_rsa
id_rsaファイルを600にパーミッション変更します。
実行後特になにもおきません。
SCPでサーバー間転送
これで準備が整いました。さくらサーバーからエックスサーバーにデータ転送します。
sshでさくらにログインし圧縮したtarデータの場所へ移動します。で、下記のSCPコマンドを打ちます。
scp -i ~/.ssh/id_rsa -P 10022 ./www_bkup.tar.gz XserverのID@XserverのID.xsrv.jp:/home/XserverのID/ドメイン名/public_html/引越し先のディレクトリ
うまく実行できれば公開鍵認証のパスワードを入力を求められ、パスワードを入力すると転送がスタート!
以下、簡単に補足を。
・-i ~/.ssh/id_rsa
公開鍵認証を利用して接続します。ファイルは.ssh配下の「id_rsa」。
・-P 10022
エックスサーバーはポートが10022でないと許可していないので、ポートを10022に指定。
・./www_bkup.tar.gz
先ほど圧縮したtarデータです。
・XserverのID@XserverのID.xsrv.jp:/home/XserverのID/ドメイン名/public_html/引越し先のディレクトリ
SCPの基本的な記述です。引越し先であるエックスサーバーの転送先を指定します。
tarを解凍
最後に、引越し先に持って行ったtarデータを解答しましょう。
tar vxzf www_bkup.tar.gz
以上です。
終わりに
アップしたid_rsa, id_rsa.pubは削除しておきましょう。
もしかしたらid_rsa.pubはそもそもいらないかも。
不足あればお知らせください!
参考にしたサイト
・scpコマンドでサーバー間のファイル転送 | Weblogy http://blog.dacelo.info/linux/entry-651.html
・管理者必見! ネットワーク・コマンド集 - scpコマンド:ITpro http://itpro.nikkeibp.co.jp/article/COLUMN/20070723/277943/?rt=nocnt
・SCPとSFTPの違い | サバカン屋テックブログ http://www.skyarch.net/blog/?p=379
追記:他のサーバーでもいけるはず!
パスなどは違えど、他のサーバーでも仕組みは同じなのでいけるはずです。例えばコアサーバー→XserverでもSCP接続を確認できました。