Backup-Frage

Till

Administrator
Und Du bist sicher, dass es schon mal funktioniert hat?? Na egal, dann poste mal Zeile 15 aus dem Script.
 

redi78

Member
Hi Till,
ja da bin ich mir ganz sicher. Hier das komplette Script:

Code:
#!/bin/bash
# Description: Sicherung von allen Mysql-Datenbanken anlegen und automatisch auf einen festgelegten FTP-Server hochladen oder in ein Verzeichnis verschieben. 
# Version 1.0


# Allgemeine Angaben

# MYSQL_USER=[***]
# MYSQL_PASS=[***]
# FTP_SERVER=[***]
# FTP_USER=[***]
# FTP_PASS=[***]

# Festlegung des Datums - Format: 20050710
/bin/date=`date +"%Y%m%d"`

# Das Script

# Backup-Verzeichnis anlegen 
cd /..
/bin/mkdir /backup
cd /backup
/bin/mkdir mysql

# Verzeichnisse die ins Backup integriert werden sollen 
# rsync -az --delete --delete-after /srv /backup
# rsync -az --delete --delete-after /etc /backup
# rsync -az --delete --delete-after /var/log /backup

cd /backup/mysql

# Sicherung der Datenbanken
/usr/bin/mysqldump -AaCceQ --user=*** --password=*** -r mysql.dbs
# mysqldump -AaCceQ -u $MYSQL_USER -p$MYSQL_PASS -r mysql.dbs

cd /backup

# Alle Dateien mit tar.bz2 komprimieren
# tar cjfp files-$DATE.tar.bz2 srv
# tar cjfp etc-$DATE.tar.bz2 etc
# tar cjfp logs-$DATE.tar.bz2 log
/bin/tar cjfp mysql-$DATE.tar.bz2 mysql

# Alle komprimierten Dateien per FTP auf den Backup-Server laden
# ftp ftp://$FTP_USER:$FTP_PASS@$FTP_SERVER *$DATE* 21

# Alle komprimierten Dateien auf den Backup-Server verschieben
/bin/mv *$DATE* /media/backup/BackupNeu/mysql/

# Anschliessend alle auf den Server angelegten Dateien wieder löschen
/bin/rm -r -f /backup
 

Till

Administrator
Die Zeile:

/bin/date=`date +"%Y%m%d"`

muss lauten:

date=`/bin/date +"%Y%m%d"`

da das date vorne eine Variable und nicht das Programm date ist.
 

Till

Administrator
Laut dem Log Eintrag wird der Cron aber gestartet. Woher weißt Du denn, dass er nicht gestaret wurde?
 

redi78

Member
Hallo Till,
ich wollte mir das log des scripts bei der ausführung durch cron schreiben lassen:

10 11 * * * /root/scripts/backupmysl.sh > /root/scripts/mysqltestlog.log

da die datei erstellt worden ist (welche leer gewesen ist) muss ich annehmen, dass der cronjob ausgeführt wird. jedoch muss dann noch ein fehler im script sein, weil es nicht abgearbeitet wird. hat noch jemand eine idee?
 

redi78

Member
ja du hast recht till, der cron wird gestartet. jedoch kann ich das backup nicht auffinden. top zeit auch keinen laufenden prozess diesbezüglich an. ich vermute es hängt noch irgendwo.
 

redi78

Member
Hallo Leute,

leider ist es jetzt soweit das ich mal eine Datenbank aus der Sicherung zurückspielen muss. Mit diesem Skript habe ich ja von allen Datenbanken einen Dump gemacht.

Die Frage die sich jetzt stellt ist, wie kann ich nur eine einzelne Datenbank davon wieder zurück sichern?

Vielen Dank für eure Hilfe.

lg redi78
 

Till

Administrator
Wenn das Backup einer mysql DB mit dem Befehl mysqldump gezogen wurde, dann kannst Du es mit phpmyadmin wieder einspielen oder mit dem Kommandozeilen mysql client. Vorher aber die Datenbank leeren (nicht löschen), in die Du das Backup einspielen willst.

Auf der Kommandozeile geht das z.B. so:

mysql -u root -p datenbankname < /pfad/zu/datenbankbackup.sql

Wobei "datenbankname der Name der Zieldatenbank ist und "/pfad/zu/datenbankbackup.sql" der Pfad zur Backupdatei.
 

Werbung

Top