Hallo zusammen,
ich beobachte einige Threads in diesem Forum schon länger. Nun hab ich mich mal registriert, weil ich selbst vor einem Problem stehe.
Ich habe ein Shell Script für ein File- und DB-Backup einer Website erstellt, welches schon seit einigen Monaten zuverlässig per Cron läuft.
Dieses möchte ich nun allerdings erweitern. Allerdings komme ich nicht so richtig voran, weil meine Kompetenz auf Unix-Ebene eher wenig bis gar nicht vorhanden ist.
Hier mal mein bisheriges Script:
Teil 1
Teil 2
Ich möchte nun das DB-Backup täglich in eine andere DB auf einem anderen Server einspielen.
Ich bin nun soweit, dass ich weiß, dass ich ein neues Script brauche, welches auf dem anderen Server liegt und von dort auf das Backup zugreift und es in die eigene DB einspielt. Leider weiß ich nicht, wie ich auf die Dateien zugreifen kann und wie ich die aktuellste gzip-file abfragen kann. Zudem wäre es schön, wenn in Teil 2 des bisherigen Scriptes die Zeilen des DB-Dumps gezählt werden könnten und eine Fehlermeldung per Mail kommt, wenn das Dump weniger Zeilen aufweist, als das Dump vom vorherigen Tag.
Was meint ihr? Ist das so machbar, wie ich mir das denke?
Kann mir jemand bei der Erstellung dieses Scriptes helfen?
Ich freue mich über eure Hilfe und sag jetzt schonmal danke!
ich beobachte einige Threads in diesem Forum schon länger. Nun hab ich mich mal registriert, weil ich selbst vor einem Problem stehe.
Ich habe ein Shell Script für ein File- und DB-Backup einer Website erstellt, welches schon seit einigen Monaten zuverlässig per Cron läuft.
Dieses möchte ich nun allerdings erweitern. Allerdings komme ich nicht so richtig voran, weil meine Kompetenz auf Unix-Ebene eher wenig bis gar nicht vorhanden ist.
Hier mal mein bisheriges Script:
Teil 1
Code:
#!/bin/bash echo "1. Start des Backup-Vorgangs für Files ..." cd /kunden/xxxx tar -cjf /backupdisk/backups/archiv_`date +%Y-%m-%d_%H-%M-%S`.tar.gz echo "2. File-Backup wurde erfolgreich durchgeführt!" # alte Backups löschen: find /backupdisk/backups/ -type f -mtime +14 -name \*.tar.gz -exec rm {} \;
Code:
#!/bin/sh DATUM=`date '+%Y-%m-%d_%H-%M-%S'` echo "3. Start des Backup-Vorgangs für SQL ..." # Backup erstellen: mysqldump -uUSER -pPASS -hHOST --opt DB-NAME > /backupdisk/backups/archiv-sql.sql # Backup packen: gzip -9 --best /backupdisk/backups/archiv-sql.sql # gepacktes Backup verschieben/umbenennen mv /backupdisk/backups/archiv-sql.sql.gz /backupdisk/backups/archiv-sql_${DATUM}.sql.gz echo "4. SQL-Backup wurde erfolgreich durchgeführt!" # alte Backups löschen: find /backupdisk/backups/ -type f -mtime +14 -name \*.sql.gz -exec rm {} \; echo "5. Alle Backups, die älter sind als 14 Tage, wurden gelöscht! echo "Das Backup wurde erfolgreich durchgeführt." | mail -s "Backup successful" [email protected]
Ich bin nun soweit, dass ich weiß, dass ich ein neues Script brauche, welches auf dem anderen Server liegt und von dort auf das Backup zugreift und es in die eigene DB einspielt. Leider weiß ich nicht, wie ich auf die Dateien zugreifen kann und wie ich die aktuellste gzip-file abfragen kann. Zudem wäre es schön, wenn in Teil 2 des bisherigen Scriptes die Zeilen des DB-Dumps gezählt werden könnten und eine Fehlermeldung per Mail kommt, wenn das Dump weniger Zeilen aufweist, als das Dump vom vorherigen Tag.
Was meint ihr? Ist das so machbar, wie ich mir das denke?
Kann mir jemand bei der Erstellung dieses Scriptes helfen?
Ich freue mich über eure Hilfe und sag jetzt schonmal danke!
Comment