多くの共用サーバーでは、有料のバックアップ機能を提供しています。有料バックアップを利用していない人は、自前でバックアップを設定する必要があります。
有料バックアップを利用している人も、念のために自前バックアップをしたほうがいいかもしれません。
2012年のファーストサーバのデータ消失事故。ファーストサーバ側の作業ミスによって、データを消失し、被害にあった顧客件数は5000件以上。そのほとんどがファーストサーバ側では復旧不可能。一部の顧客は自前でバックアップしていたので復旧できたが、復旧のメドがたたない顧客も多い。
ファーストサーバ障害、深刻化する大規模「データ消失」
ファーストサーバ障害、深刻化する大規模「データ消失」 ヤフー子会社、クラウド時代の盲点を露呈(ネット事件簿) - 日本経済新聞
クラウドに預けていたデータが、「雲」が消えるかのごとく消失してしまった。20日17時頃、レンタルサーバー会社のファーストサーバ(大阪市)で起きた「データ消失」事故。その深刻な状況が日を追うごとに明らかになってきている。被害にあった顧客件数は...
共用サーバでFTP接続しか使えない場合は、wgetコマンドでミラーリングダウンロードします。
wgetコマンドは、webクローラで有名だね。
架空の共用サーバのディレクトリ例です。
ディレクトリ | 説明 | バックアップ対象 |
/log | アクセスログ | ○ |
メールボックス | ☓ | |
/public_html | web公開ディレクトリ | ○ |
/public_html/_smarty/templates_c | smarty一時ファイル | ☓ |
/mysqldump | dbバックアップファイル | ○ |
アクセスログ、公開ディレクトリ、dbバックアップファイルをダウンロードします。
ここでは除外する例として、公開ディレクトリのうち、smartyの一時ファイルをダウンロードしないように除外しました。
#!/bin/bash
set -u
set -x
set -e
wget --version
export FTP_HOST=sv123.example.jp
export FTP_USER=admin@sv123.example.jp
export FTP_PASS=password
wget --mirror \
--no-check-certificate \
--ftp-user=$FTP_USER \
--ftp-password=$FTP_PASS \
ftp://$FTP_HOST/log \
wget --mirror \
--no-check-certificate \
--ftp-user=$FTP_USER \
--ftp-password=$FTP_PASS \
--exclude-directories=public_html/_smarty/templates_c \
ftp://$FTP_HOST/public_html \
wget --mirror \
--no-check-certificate \
--ftp-user=$FTP_USER \
--ftp-password=$FTP_PASS \
ftp://$FTP_HOST/mysqldump \
Code language: Bash (bash)
ターミナルで実行すると、カレントディレクトリにFTPホスト名 sv123.example.jpディレクトリが作成されて、その下に保存されます。
$ tree
.
└── sv123.example.jp
├── mysqldump
│ └── db123.exampl.jp_mydb.sql.gz
└── public_html
└── index.php
初回は、全ファイルをダウンロードするので、ファイル数が多い場合は時間がかかります。
2回目からは、ローカル側とサーバー側ファイルを比較して、更新されたファイルだけをダウンロードするので、処理時間は短くなります。