Esta é uma abordagem muito simples usando o cliente ftp da linha de comando lftp:
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
Observação:essa abordagem tem vários problemas:
- ftp não é criptografado, então qualquer pessoa capaz de farejar a rede pode ver tanto a senha quanto os dados do banco de dados. Encaminhá-lo através de gpg -e [key] pode ser usado para criptografar o dump, mas as senhas de ftp permanecem não criptografadas (sftp, scp são alternativas melhores)
- se alguém hackear o servidor de banco de dados, ele pode usar as informações do usuário neste script para acessar o servidor ftp e, dependendo dos direitos, excluir os backups (isso já aconteceu no mundo real:http://seclists.org/fulldisclosure/2009/Jun/0048.html )