Mysql
 sql >> Database >  >> RDS >> Mysql

Come creare un processo Cron per eseguire il backup di MySQL e FTP sul mio server di backup?

Questo è un approccio molto semplice usando il client ftp della riga di 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

Nota:questo approccio presenta una serie di problemi:

  • ftp non è crittografato, quindi chiunque sia in grado di annusare la rete, è in grado di vedere sia la password che i dati del database. Piping tramite gpg -e [key] può essere utilizzato per crittografare il dump ma le password ftp rimangono non crittografate (sftp, scp sono alternative migliori)
  • se qualcuno hackera il server del database, può utilizzare le informazioni sull'utente in questo script per accedere al server ftp e, a seconda dei diritti, eliminare i backup (questo è successo nel mondo reale:http://seclists.org/fulldisclosure/2009/Jun/0048.html )