[HowTo]Professionelles Backupscript

11/06/2010 17:51 Mario23231#1
Hallo Com,

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
[Only registered and activated users can see links. Click Here To Register...]

Danach navigieren wir uns in das Verzeichniss was mit /usr/ports anfängt
[Only registered and activated users can see links. Click Here To Register...]

dort geben wir "make install clean" ein (Wenn die installation fehlschlagt updated eure Ports (portsnap fetch extract update))
[Only registered and activated users can see links. Click Here To Register...]

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
[Only registered and activated users can see links. Click Here To Register...]

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
$temp0
while ( : ) do
 
MyBackup="mysql.backup.`date +%Y.%m.%d.at.%H.%M.%S`.tgz"

 
/usr/local/bin/mysqldump -u backup -h localhost -u root  ---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 ---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/mysqldeinusername@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 
Sleep 3600 sagt auch dass dieses Script jede Stunde ein backup zieht.
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.
11/06/2010 17:55 Die-Dose#2
Sehr nice :)
11/06/2010 19:05 Mario23231#3
Danke, ist halt die leichteste Methode, finde ich
11/06/2010 19:19 .NexT#4
Schönes tut.
11/06/2010 19:20 .Zander#5
Mega Nice von dir!
Ich habs damals mal mit PHPMYADMIN versucht
Kann man es auch mit 1x Root und 1x VServer machen?
mfg
Zander
11/06/2010 19:32 Mr Seriuz!#6
Ziemlich nice!
11/06/2010 19:38 Mario23231#7
kommt drauf an, es muss halt ein Server mit großer Speicherkapazität sein und SSH zugriff.
11/06/2010 19:39 amphetaminecoffee#8
thank you!
11/06/2010 19:41 .Zander#9
Quote:
Originally Posted by Mario23231 View Post
kommt drauf an, es muss halt ein Server mit großer Speicherkapazität sein und SSH zugriff.
SSH Zugriff hat er
und 250 GB Festplatte Betriebssystem ist Debian!
mfg
Zander
11/06/2010 19:42 Julz'#10
NIce hast ein Thanks.
11/06/2010 19:43 .Risan.#11
Ich hab fast das gleiche Script, nur etwas anders, aber von der Funktion das selbe. Er backupt alleine ;D und setzt namen und Datum ein.
Nur ich will es ausbauen mit Monats Ordner usw.. ^^
11/06/2010 19:44 Mario23231#12
ist kein Problem müsst halt nur rsync sagen welchen Ordner er syncronisieren soll
11/06/2010 19:48 JayJayx3#13
Very Nice.
11/06/2010 21:19 Mario23231#14
Gut, dass mein Tutorial so gut ankommt;)
11/06/2010 21:55 .Zander#15
Wie muss ich es dann aufm VServer installieren?
nochmal rsync?
Kannste das mir mal beschreiben?^^