VPS間でのサーバ引っ越し: 1 scp転送からdbのダンプまで

サーバーの引っ越しのログ。
複数バーチャルホストでWPを運用しており、その他いくつかスタティックなサイトもある状態。

移動後、更にSSL化も行う

おおまかな手順

  • ファイルの転送
  • DBのダンプ・リストア
  • バーチャルホスト設定
  • ドメインのDNS設定変更
  • SSL設定

ファイルの転送

これはscpを使う。

SCPを使ったサーバ間のデータ移動

参考:http://www.atmarkit.co.jp/ait/articles/1701/27/news009.html

ローカルのファイルをリモートへ転送
または
リモートのファイルをローカルへ取得
という2つの方法がとれるが、今回は旧サーバから新サーバへ転送させる。
また、新サーバへの認証は鍵認証となる。

鍵認証の準備

旧サーバでkey genする

old serverにログインし、key genする。今だけの利用なので、passphraseはブランク。

ローカルマシンにダウンロード。

このとき777にしないと落とせなかった。

Oldの方のAuth_keyとマージ

ssh-copy-idを使う。

ssh-copy-id -i id_rsa.hoge {user}@{host}

の書式でサーバに公開鍵を送ることができる。
参考:https://qiita.com/sakanashi/items/542ae428d9de9c7c59dc
今回の場合はこんなかんじ。

# ssh-copy-id -p 0000 -i /path/to/local/id_rsa.pub user@000.000.000.000

するとssh-copy-idが使えないといわれた汗
なので、homebrewでインストール

# brew install ssh-copy-id

再度実行すると不具合。

/usr/local/bin/ssh-copy-id: ERROR: failed to open ID file '/path/to/local/id_rsa': No such file or directory
    (to install the contents of '/path/to/local/id_rsa.pub' anyway, look at the -f option)

とのことなので、おとなしく-fオプションをつける。

# ssh-copy-id -f -p 11223 -i /path/to/local/id_rsa.pub user@000.000.000.000

そしたら成功。

Number of key(s) added:        1

サーバーに入ってみると、ちゃんとauthorized_keyが更新されている。

SCPでファイル転送

書式は、

scp option -i 秘密鍵 コピーしたいファイルパス 受取先パス

なので、旧サーバへログインし、

# scp -r -p -P 0000 -i /home/admin/.ssh/id_rsa /path/to/docroot admin@example.net:/path/to/new/docroot

こんな感じで、ドキュメントルートをそれぞれ転送。
事前に新サーバに転送先のディレクトリを作っておくこと。
所有者もログインユーザになるように。
もし別ユーザの所有だったら修正しておく。

chown admin:admin -R /path/to/new/docroot/

次はDB。

DBのダンプ・リストア

ダンプを取って、そのまま移動。

dumpデータ取得

全データのdump

# mysqldump -u root -p -x --all-databases > dump.sql

DBを選択してdump

# mysqldump --default-character-set=utf8 -u root -p database_name > dump.sql

複数Tableを選択してdump

# mysqldump --default-character-set=utf8 -u root -p database_name table_name1 table_name2 > dump.sql

復元する

# mysql -u root -p < dump.sql

新サーバで作成を確認し、
各ユーザーでのログインも確認する。
既に同じユーザがいる場合、PWが上書きされるので注意。
その場合はこれで戻す。

UPDATE mysql.user SET Password=PASSWORD('mypassword') WHERE User='myuser';
FLUSH PRIVILEGES;