お客さんの要望で、お客さん自身で所有していたさくらのレンタルサーバーをエックスサーバーへ移したいとの事。俗に言う引っ越し。
レンサバの引っ越しでは
「FTP使って ホームページ(ワードプレス) のファイルダウンロード&DBの引っ越し方のhowto」
は良く紹介されてるが、公開鍵を使ったsshでのデータ移行はあまり出てこなかったのでまとめて紹介します。
レンタルサーバーなので基本的には以下のKERENORさんが上手くまとめてらしたので参考にさせて頂きましたm(__)m(というより記事をまとめようと書いていたらKERENORさんの記事を発見したので拝借させて頂いたという、他力本願スタイルです)
ファイル容量が大きければ大きいほど一番時間がかかるであろう
「さくらサーバーからデータをダウンロード&エクスポートする。」
「エックスサーバーにFTPでファイルをアップロードする」
この部分が省けます。
KERENORさんより
Xサーバーと契約の流れは前回の記事でまとめてるのでそちらを参考にして下さい。またホームページのお引越しに際してドメイン(移管)も引っ越しましたので、そちらも気になる人は参考に。
【さくらサーバー側】公開鍵と秘密鍵の作成
% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
fe:fe:3d:de:de:ed:7b:64:60:08:51:09:75:54:04:1d test@test.sakura.ne.jp
The key's randomart image is:
+--[ RSA 2048]----+
| .oBEo. |
| + .. |
| o |
| . |
| S . . . |
| . . . +|
| . o.|
| . ...+|
| .o...o=O|
+-----------------+
生成したid_rsa.pubを接続先Xサーバー内の/home/xserver(ユーザー名)/.ssh/ authorized_keys に追記して接続確認。
% ssh -p 10022 -i id_rsa xuser@test.xserver.jp
Last login: Mon Aug 31 02:38:55 2020 from sakurauser.sakura.ne.jp
[xuser@sv10669 ~]$ ls
xuser.xsrv.jp ssl
接続完了。
rsyncでサーバー間ファイル転送
鬼便利コマンド”rsync”を使ってさくらサーバーからXサーバーへファイルを転送。
rsync -a -e "ssh -p 10022 -i id_rsa" /home/sakurauser/www/sakurauser.com/ xuser@test.xserver.jp:/home/xuser/test.com/public_html/
この手の紹介でSCPによるファイル転送は多く見受けられるが、現在rsyncが推奨されてるのでrsyncを使おう!
-aオプションはおまじないと言っても過言ではないぐらい、便利さぁ。
この手の説明サイトはたくさんあるので以下参考に。
rsyncのオプション
おまけのバックアップ
phpMyAdminを使ってsqlファイルのバックアップを取ることを前提として、ここではおまけとしてせっかくsshでログインしてるので、このままDBのバックアップを取って、こちらもrsyncを使って外部サーバー(Xサーバー)へsqlファイルを転送しておきます。バックアップのバックアップとしてw
mysqldumpでバックアップする
mysqldump -u sakurauser -p -h sakurauser.db.sakura.ne.jp DB_NAME > sakura_db.sql
rsyncを使い転送
rsync -a -e "ssh -p 10022 -i id_rsa" /home/sakurauser/sakura_db.sql xuser@test.xserver.jp:/home/xuser/db_backup/
あとの作業はKERENORさん任せです(笑)どうぞご参考に
KERENORさんより
まとめ
レンサバなのでsshによるコマンド操作で制限があるだろうし、どれが使えるのかいちいち調べるのも面倒なのでファイル転送のみコマンド操作してあとは手動のやり方が手っ取り早いと思ってまとめました。