サイト移転などで、ファイル一式ダウンロードしなければならない場面は結構あります。その時、SSHが使えると話が早いのですが、移転する場合は貧弱なサーバーからの移転が殆どですのでSSHは使えません。
そうなると、真面目にFTPでダウンロードするしかなくなり、実際やってみるとダウンロードに失敗したり、証明書がー、というダイアログが出たりして、途方に暮れるわけです。
この記事は、SSHが使えないサーバーで、サーバーのファイルをTARでまとめる方法についてご紹介します。
サーバーのファイル一式をzipで固める方法
phpでzipで固めるという記事を以前見かけました。実際、実行してみると正常終了しているようでしたが、zipファイルは出力されていませんでした。
出来るサイトは出来るけど、出来ないサイトは出来ない。phpのライブラリが対応していないのか、execコマンドがダメなのかわかりません。
貧弱なサーバーではそもそもサーバーの設定を変更できませんので、速攻で諦めて次に進みます。
ターミナルを疑似的に再現する
zipを直接作るやり方だと、上手くいかないとそれまで。
なので、ターミナルを再現する方法を調べました。
こちらは上手くいきました。
tar cvf Archive.tar ./*
このコマンドを実行すると、しばらく待たされたあとに、
実行結果はありません、的なメッセージがでますが、ファイルが出来ていますので、FTPでダウンロードします。
zipコマンドはサーバーの負荷が高くなるのでタイムアウトになるケースが多いですが、TARの場合は固めるだけなのでサーバーに蹴られるケースはほぼありません。
Lolipopでは、PHP5だと動きませんでした。PHP7.1以降にすると動きました。
まとめ
サーバーを移転する時にFTPで簡単にダウンロードできるような強力なサーバーから移転するケースは少なく、貧弱なサーバーでいかに効率よくダウンロードするかというのが最初の壁として立ちはだかります。
そんな時には、この記事を思い出して欲しい。