[Memo2010][ITPASS] tako 構築作業ログ 18 (home 領域の転送 1)

home 領域を ika から tako へ転送

サーバ交換作業当日にも同様の作業を行うが, その際の時間を短縮するために行った.

公開鍵認証の際のセキュリティ設定の変更 (通信許可)

まず tako 側の ika に対する通信許可の設定を行った.

最近の OpenSSH では, デフォルトでは root のログインを許可しないため, 設定を変更した. tako の /etc/ssh/sshd_config で,

PermitRootLogin no

という部分を

PermitRootLogin yes

に変更した.

その後,

tako# /etc/init.d/ssh restart

として設定を反映した. これにより, root のログインを許可することとなった.

rsync で転送されるファイルの確認

/root/.ssh/ の秘密鍵でログインするため, まず以下の作業を行った.

ika$ sudo -s -H
ika# cd /root  

いきなり rsync コマンドを実行すると予期せぬ間違い (転送元と転送先の設定を間違って, 転送先のファイルを全て消してしまう等) が起こりうるため, まずは rsync コマンドに -n オプションをつけて実行した. -n オプションをつけて実行すると, 実際のファイルの転送は行わずに, 転送されるはずのファイルのリストが出力される.

  • rsync する際, gate の home 領域や, tako のみに存在する chikuwa* の home, aquota.user ファイルまで ika に同期してしまわないよう オプション --exclude で除外した.
  • 外部記憶装置にあるファイルが転送されることのないように -x というオプションを加えた.
  • ここでは一度ファイルリストを /tmp ディレクトリ以下に出力し, 確認してから実際の転送を行うこととした.

    root@ika:~# rsync -n -av --delete -e ssh --exclude chikuwa* -x   
                --exclude=aquota.user --exclude=gate /home/new-itpass.scitec.kobe-u.ac.jp: 
                /home/ 2>&1 | tee /tmp/rsync_old2new.log

ここでは 3 行に分けて書いているが, 実際には 1 行で入力した. なお, rsync に関するオプション (-av, --delete, -e 等) については, rsync(1) 等を参照のこと. また, "/home" と "/home/" では転送内容が異なるため注意しなければならない.

上記コマンドを実行すると

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

という警告が出て, リストは適切に出力されなかった.

この問題は, /root/.ssh 以下の known_hosts のファイル名を known_hosts.bk に変更し, 新たに known_hosts という空白のファイルを作成することで解決した (これは適切な対処方法ではない).

上記コマンドの動作の終了後, /tmp/rsync_old2new.log を見て, 転送される予定のファイルを確認した. 予期しないファイルが削除, 転送されてしまわれることはなさそうであった.

rsync でファイルを転送

rsync で転送されるファイルの確認 で確認したコマンドから -n オプションを除いたコマンドを実行した.

実行後, tako 内の /home 以下にファイルが転送されていることを確認した. 最後に, 公開鍵認証の際のセキュリティ設定の変更 (通信許可)で行なった設定を元に戻した. また, ika 内の /root/.ssh 以下に作成した known_hosts を消去し, known_hosts.bk のファイル名を known_hosts に戻した.