Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erstelle ich einen Cron-Job, um MySQL- und FTP-Backups auf meinem Backup-Server zu sichern?

Dies ist ein sehr einfacher Ansatz mit dem lftp-Befehlszeilen-FTP-Client:

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

Hinweis:Dieser Ansatz hat eine Reihe von Problemen:

  • FTP ist unverschlüsselt, sodass jeder, der das Netzwerk ausspionieren kann, sowohl das Passwort als auch die Datenbankdaten sehen kann. Das Weiterleiten durch gpg -e [key] kann verwendet werden, um den Dump zu verschlüsseln, aber die FTP-Passwörter bleiben unverschlüsselt (sftp, scp sind bessere Alternativen)
  • Wenn jemand den Datenbankserver hackt, kann er mit den Benutzerinformationen in diesem Skript auf den FTP-Server zugreifen und je nach Berechtigung die Backups löschen (dies ist in der realen Welt passiert:http://seclists.org/fulldisclosure/2009/Jun/0048.html )