以前、レンタルサーバーでデータベースやファイルを自動でバックアップする方法を紹介しました。
しかし、バックアップしたデータはレンタルサーバー内に保存されたままで、もし、サーバー自体にトラブルが発生した場合は、せっかくバックアップしたデータを取り出すことができなくなります。
そこで今回は、レンタルサーバー内にあるファイルをwgetコマンドとFTPで自宅サーバーへダウンロードする方法をご紹介します。
FTPのユーザーとパスワード付きwget
FTP認証で使用するユーザー名とパスワードを指定してダウンロードする方法は以下の通りです。
wget ftp://[ファイルパス] --user=[ユーザー名] --passwd=[パスワード]
下記は、当サイトでお馴染みのエックスサーバーのルートディレクトリ直下にある、backupフォルダ内のdump_[今日の日付].sql
をダウンロードする場合の例です。
wget +%y%m%d).sql --user=XXXX@XXXX.XXX --password=XXXXXXXX
ついでに、保存先をマウントしたNASに指定するとこんな感じです。
wget +%y%m%d).sql --user=XXXX@XXXX.XXX --password=XXXXXXXX -P /mnt/nas/backup
URLに認証情報を付ける
FTPのURLにユーザーとパスワードを付ける方法もあります。
どちらも動きは同じです。
wget ftp://[ユーザー名]:[パスワード]@[ファイルパス]
ただ、この方法を使う場合には注意が必要です。
それは、ユーザー名やパスワードもURLエンコードしなければならないということ。
特にエックスサーバーのようにユーザー名に「@(アットマーク)」があると失敗してしまいます。
URLエンコードしてくれるサイトなどを利用してwgetしましょう。
URLエンコード例
@ %40
HTTPでhtaccess認証の場合
余談ではありますが、最後にhtaccess認証を使ったHTTP経由でダウンロードする場合も紹介しておきます。
wget +%y%m%d).sql --http-user=[ユーザー名] --http-passwd=[パスワード]
当然ですが、HTTPの場合はドキュメントルート配下になりますのでご注意ください。
最後に
バックアップできることが確認できたら、cron等でこれを毎日取得しておけば、最悪1日前まで戻せますね。
自宅サーバーの方もバックアップしていますので、もう何が合っても怖くない!…かも。
同時に壊れた場合はさすがに諦めます。
- Original:https://minory.org/ftp-wget.html
- Source:Minory
- Author:管理者