これは、lftpコマンドラインのftpクライアントを使用した非常に単純なアプローチです。
backup.sh:
mysqldump -f [database] | gzip > /backup/[database].dump.gz
lftp -f /backup/lftp.script
lftp.script:
open backup.ftp.example.com
user [username] [password]
cd /backup
mv webflag.dump.gz.8 webflag.dump.gz.9
mv webflag.dump.gz.7 webflag.dump.gz.8
mv webflag.dump.gz.6 webflag.dump.gz.7
mv webflag.dump.gz.5 webflag.dump.gz.6
mv webflag.dump.gz.4 webflag.dump.gz.5
mv webflag.dump.gz.3 webflag.dump.gz.4
mv webflag.dump.gz.2 webflag.dump.gz.3
mv webflag.dump.gz.1 webflag.dump.gz.2
mv webflag.dump.gz webflag.dump.gz.1
注:このアプローチにはいくつかの問題があります:
- ftpは暗号化されていないため、ネットワークを盗聴できる人は誰でも、パスワードとデータベースデータの両方を見ることができます。 gpg -e [key]を介してパイプすることでダンプを暗号化できますが、ftpパスワードは暗号化されません(sftp、scpがより適切な代替手段です)
- 誰かがデータベースサーバーをハッキングした場合、このスクリプトのユーザー情報を使用してftpサーバーにアクセスし、権限に応じてバックアップを削除できます(これは現実の世界で発生しています: http://seclists.org/fulldisclosure/2009/Jun/0048.html )