SSH経由で生成したファイルを直接他のホストへ転送する方法
新入社員の立原です。
前回「ロスなくギガ単位のファイルをインストールする方法」をご紹介しました。
WEBサイトコンテンツの場合ファイル数が多く、FTPクライアントを使ってダウンロードすると、ファイル毎にセッションの開始、終了を繰り返すので、「再開時に発生するタイムラグ×ファイル数=遅延時間」となり、作業時間が無駄に長くなってしまいます。
接続自体が止まってしまうこともしばしばあるので、できるだけ安定した接続はないかと模索したところ、解決策がありましたので本日はそちらをご紹介しようと思います。
作業内容としては、データベースのダンプ(バックアップ)をローカルのデスクに書き込むと、ディスクに書き込む際にオーバーヘッドが発生、更に転送が必要なので「2重に無駄」になるため、それを避けるためにデータベースダンプと同時に引越し先へ書き込めばかなりの時間短縮になることがわかりましたので、そちらを作業していきます!
ちなみにデータベースダンプとは、データベースに含まれているテーブルなどの情報を SQL 文の形で出力することです。
シチュエーションとしては、レンタルサーバーから異なるレンタルサーバーへの引っ越しを想定します。
このオペレーションを行うには「引越し元、引越し先双方にSSHログインが可能であること」が条件なので注意してください!
■tarアーカイブの場合
tarコマンドは下記の通りになります。
# tar zcvf – /アーカイブ化したいディレクトリのパス | ssh ユーザ名@リモートホスト “cat > /リモート側で作成するアーカイブ・ファイルのパス”
例として弊社のサイトのサーバー移転するとなると…
tar zcvf – dictux.com/ | ssh dictux@123.123.123.123 “cat > ~/dictux.com.tar.gz”
となります。
ではデータベースダンプではどうなるのか…というと…
■データベースのダンプの場合
# mysqldump -uユーザー名 -pパスワード -hDBホスト名 DB名 | ssh ユーザ名@リモートホスト “cat > 任意のダンプファイル名.sql”
となります。