da ich sehe, dass es kaum gute Backupscripts für die Mysql Datenbanken gibt, werde ich hier meins releasen.
Die Methode funktioniert mit rsync.
Also was brauchen wir:
- Backupspace mit ssh(Putty) zugriff (mehr dazu gleich)
- Den Server wo die Datenbank drauf liegt (meistens der selbe Server wo der Gameserver drauf liegt)
- Auf dem Server rsync
- Zugriffsrechte für Mysql
Ein Backupspace ist, wie der Name schon sagt, zum hinterlegen von Backups euren Server. Die meisten Serverbetreiber bieten dies kostenlos an, wenn man ANSTÄNDIG fragt.
Als erstest loggen wir uns auf unserem Server ein.
Ist dies geschehen machen wir folgendes um rsync zu finden
Danach navigieren wir uns in das Verzeichniss was mit /usr/ports anfängt
dort geben wir "make install clean" ein (Wenn die installation fehlschlagt updated eure Ports (portsnap fetch extract update))
Wenn die Installation abgeschlossen ist, ist RSync erfolgreich installiert.
Nun wollen wir, dass es euren Server erlaubt ist ohne Passwort zu connecten. Das machen wir so
Den Dateinamen könnt ihr euch selber aussuchen
Nachdem das Programm fertig geworden ist, ist nun ein Schlüssel laut euren Pfad angaben zu finden. In meinem Fall /root/.ssh/forbackup.pub
In dieser Datei steht jetzt ein Schlüssel. Jetzt verbindet euch zum eurem Backupspace loggt euch dort über Putty ein und erstellt die Datei: "/.ssh/authorized_keys" das geht meistens mit ee /.ssh/authorized_keys . In dieser Datei kommt der Schlüssel, den ihr, wie zB. in meinem Fall, in der /root/.ssh/forbackup.pub habt.
Ist dieses getan müsst ihr euch wieder mit eurem Root verbinden.
Jetzt kommt das eigentliche Script.
Wenn ihr euch eingeloggt habt macht ihr ee /root/back_backup.sh
Ihr tragt folgendes ein
PHP Code:
temp="/tmp/$(basename $0).$$" ; trap "/bin/rm -f
$temp" 0
while ( : ) do
MyBackup="mysql.backup.`date +%Y.%m.%d.at.%H.%M.%S`.tgz"
/usr/local/bin/mysqldump -u backup -h localhost -u root -c --add-drop-table account > /var/backups/mysql/backup.sql
(cd /var/backups/mysql/ && tar cfz 'account'.$MyBackup backup.sql)
/usr/local/bin/mysqldump -u backup -h localhost -u root -c --add-drop-table player > /var/backups/mysql/backup.sql
(cd /var/backups/mysql/ && tar cfz 'player'.$MyBackup backup.sql)
rm /var/backups/mysql/backup.sql
rsync -av /var/backups/mysql/ deinusername@ipzumbackupspace:/pfad/zum/ordner/ # Der Pfad kann beim serveradmin erfragt werden
rm /var/backups/mysql/account.$MyBackup
rm /var/backups/mysql/player.$MyBackup
sleep 3600
done
Um das Script zu starten einfach
cd /root
./make_backup.sh &
Natürlich kann man das Script so umschreiben, dass es als cron Job ausgeführt wird, dass ist aber jedem selbst überlasen.
Jede Stunde wird also dann auf eurem Backupspace ein Backup hinterlegt von der account Datenbank und von player Datenbank. Wer etwas nachdenkt, kann so auch jede andere Datenbank in Mysql sichern
Wenn jemand Fehler findet, kann diese mir gerne senden. Ich werde diese berichtigen.






