ubuntuusers.de

Backup der Daten am Ubuntu Server

Status: Gelöst | Ubuntu-Version: Server 10.04 (Lucid Lynx)
Antworten |

Goifalracer

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

Hallo Leute,

Ich möchte gerne von meinen Ubuntu Server der Zwei festplatten verbaut hat ein automatisches Backup auf die zweite Festplatte ausführen lassen und zwar täglich und auch dann wenn der Server mal zu dem Zeitpunkt ausgeschaltet ist soll er das Backup beim einschalten gleich ausführen,wenn der Zeitpunkt bereits vorbei war!! Hab ein Skript nach dieser Anleitung angelegt Skripte/inkrementelles Backup das macht aber gar nix!!!! Auf der ersten HDD ist das System mit den Daten im Verzeichnis /home/Daten und auf der zweiten HDD das Verzeichnis /home/LinuxLaufwerk/NurAlex in dieses soll das Backup reingeschrieben werden und im Fall zurückgespielt werden!! Bei (Backupdir) hab ich /home/LinuxLaufwerk/NurAlex angehängt und bei (Source) /home/Daten angehängt und dann noch den Rest nach der Anleitung gemacht!! Hab den Server dann mal ein paar Tage laufen lassen doch er kopiert keine Daten ins Backup Verzeichnis !!! Woran könnte das liegen ??? Wäre um Hilfe sehr dankbar

MFG

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi,

kannst du bitte dein Skript hier (mit wegen Datensicherheit angepassten Verzeichnisnamen) posten. Kannst du auch bitte folgende (angepasste) Ausgabe posten:

ls -la /etc/cron.daily/<Name des Backupscriptes>

Funktioniert das Skript, wenn du es manuell ausfuehrst? Z.B. so:

sudo /etc/cron.daily/./<Name des Backupscriptes>

Gruss Lasall

Goifalracer

(Themenstarter)

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

Hey danke für die Antwort!! Das Script

#!/bin/bash
# Script fuer inkrementelles Backup mit 30 taegigem Vollbackup

### Einstellungen ##
BACKUPDIR="/home/TestLaufwerk/TestDatei/Backup"                # Pfad zum Backupverzeichnis
ROTATEDIR="/home/TestLaufwerk/TestDatei/Kon"     # Pfad wo die Backups nach 30 Tagen konserviert werden
TIMESTAMP="timestamp.dat"                 # Zeitstempel
SOURCE="/home/Testdaten"                            # Verzeichnis(se) welche(s) gesichert werden soll(en)
DATUM="$(date +%d-%m-%Y)"             # Datumsformat einstellen
ZEIT="$(date +%H:%M)"                          # Zeitformat einstellen

### Verzeichnisse/Dateien welche nicht gesichert werden sollen ! Achtung keinen Zeilenumbruch ! ##
EXCLUDE="--exclude=home/user/Filme --exclude=home/user/Musik --exclude=home/user/Spiele --exclude=home/user/.VirtualBox  --exclude=home/user/.local/share/Trash"

### Wechsel in root damit die Pfade stimmen ##
cd /

### Backupverzeichnis anlegen ##
mkdir -p ${BACKUPDIR}

### Test ob Backupverzeichnis existiert und Mail an Admin bei fehlschlagen ##
if [ ! -d "${BACKUPDIR}" ]; then

mail -s "Backupverzeichnis nicht vorhanden!" root <<EOM
Hallo Admin,
das Backup am ${DATUM} konnte nicht erstellt werden. Das Verzeichnis ${BACKUPDIR} wurde nicht gefunden und konnte auch nicht angelegt werden.
Mit freundlichem Gruss Backupscript
EOM

 . exit 1
fi

### Alle Variablen einlesen und letzte Backupdateinummer herausfinden ##
set -- ${BACKUPDIR}/backup-???.tgz
lastname=${!#}
backupnr=${lastname##*backup-}
backupnr=${backupnr%%.*}
backupnr=${backupnr//\?/0}
backupnr=$[10#${backupnr}]

### Backupdateinummer automatisch um +1 bis maximal 30 erhoehen ##
if [ "$[backupnr++]" -ge 30 ]; then
mkdir -p ${ROTATEDIR}/${DATUM}-${ZEIT}

### Test ob Rotateverzeichnis existiert und Mail an Admin bei fehlschlagen ##
if [ ! -d "${ROTATEDIR}/${DATUM}-${ZEIT}" ]; then

mail -s "Rotateverzeichnis nicht vorhanden!" root <<EOM
Hallo Admin,
die alten Backups konnten am ${DATUM} nicht verschoben werden. Das Verzeichnis ${ROTATEDIR} wurde nicht gefunden und konnte auch nicht angelegt werden.
Mit freundlichem Gruss Backupscript

und hier die Ausgabe

total 8
drwxrwxrwx 2 root root 4096 2011-07-30 19:33 .
drwxr-xr-x 3 root root 4096 2011-07-30 19:39 ..
das kommt wenn ich {{{
ls -la /etc/cron.daily/Backup

eingebe }}} und das manuelle ausführen klappt garnicht da kommt nur die Fehlermeldung das Linux das Kommando nicht kennt, wenn ich an

sudo /etc/cron.daily/./

Backup anhäge oder den kompletten speicherpfad kommt die selbe Fehlermeldung!!! Was könnte das sein ???

MFG

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi,

kannst du bitte

  1. die Vorschaufunktion im Forum nutzen, sonst ist das extrem anstrengend zu lesen, wenn die Codebloecke falsch liegen ☹

  2. die exakte Fehlermeldung (inkl. Startbefehl) beim manuellen Ausfuehren des Skriptes posten

  3. das komplette Script (am Besten mit dem Bash-Codehighlighting) posten (und deinen Benutzernamen in Pfadangaben mit "NAME" ersetzen)

  4. nochmal die Ausgabe von folgendem Befehl posten:

ls -la /etc/cron.daily/

Gruss Lasall

Goifalracer

(Themenstarter)

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

Also der Startbefehl beim manuellen ausführen lautet

 sudo /etc/cron.daily/./Backup

die darauffolgenede Fehlermeldung lautet

sudo: /etc/cron.daily/./Backup: command not found

Hier das Script

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
# Script fuer inkrementelles Backup mit 30 taegigem Vollbackup

### Einstellungen ##
BACKUPDIR="/home/TestLaufwerk/TestDatei/Backup"                # Pfad zum Backupverzeichnis
ROTATEDIR="/home/TestLaufwerk/TestDatei/Kons"     # Pfad wo die Backups nach 30 Tagen konserviert werden
TIMESTAMP="timestamp.dat"                 # Zeitstempel
SOURCE="/home/Testdaten"                            # Verzeichnis(se) welche(s) gesichert werden soll(en)
DATUM="$(date +%d-%m-%Y)"             # Datumsformat einstellen
ZEIT="$(date +%H:%M)"                          # Zeitformat einstellen

### Verzeichnisse/Dateien welche nicht gesichert werden sollen ! Achtung keinen Zeilenumbruch ! ##
EXCLUDE="--exclude=home/user/Filme --exclude=home/user/Musik --exclude=home/user/Spiele --exclude=home/user/.VirtualBox  --exclude=home/user/.local/share/Trash"

### Wechsel in root damit die Pfade stimmen ##
cd /

### Backupverzeichnis anlegen ##
mkdir -p ${BACKUPDIR}

### Test ob Backupverzeichnis existiert und Mail an Admin bei fehlschlagen ##
if [ ! -d "${BACKUPDIR}" ]; then

mail -s "Backupverzeichnis nicht vorhanden!" root <<EOM
Hallo Admin,
das Backup am ${DATUM} konnte nicht erstellt werden. Das Verzeichnis ${BACKUPDIR} wurde nicht gefunden und konnte auch nicht angelegt werden.
Mit freundlichem Gruss Backupscript
EOM

 . exit 1
fi

### Alle Variablen einlesen und letzte Backupdateinummer herausfinden ##
set -- ${BACKUPDIR}/backup-???.tgz
lastname=${!#}
backupnr=${lastname##*backup-}
backupnr=${backupnr%%.*}
backupnr=${backupnr//\?/0}
backupnr=$[10#${backupnr}]

### Backupdateinummer automatisch um +1 bis maximal 30 erhoehen ##
if [ "$[backupnr++]" -ge 30 ]; then
mkdir -p ${ROTATEDIR}/${DATUM}-${ZEIT}

### Test ob Rotateverzeichnis existiert und Mail an Admin bei fehlschlagen ##
if [ ! -d "${ROTATEDIR}/${DATUM}-${ZEIT}" ]; then

mail -s "Rotateverzeichnis nicht vorhanden!" root <<EOM
Hallo Admin,
die alten Backups konnten am ${DATUM} nicht verschoben werden. Das Verzeichnis ${ROTATEDIR} wurde nicht gefunden und konnte auch nicht angelegt werden.
Mit freundlichem Gruss Backupscript
EOM

Ausgabe von Befehl

ls -la /etc/cron.daily/
{{{ lautet{{{
total 80
drwxr-xr-x  3 root root  4096 2011-07-30 19:39 .
drwxr-xr-x 99 root root  4096 2011-07-30 22:26 ..
-rwxr-xr-x  1 root root   189 2010-04-19 10:56 apport
-rwxr-xr-x  1 root root 15914 2011-05-30 07:40 apt
-rwxr-xr-x  1 root root   314 2010-04-09 14:16 aptitude
-rwxr-xr-x  1 root root  3306 2011-07-27 19:27 backup
drwxrwxrwx  2 root root  4096 2011-07-30 19:33 Backup
-rwxr-xr-x  1 root root   502 2009-11-10 17:12 bsdmainutils
-rwxr-xr-x  1 root root   256 2011-01-06 20:43 dpkg
-rwxr-xr-x  1 root root    89 2010-03-07 04:00 logrotate
-rwxr-xr-x  1 root root  1327 2010-10-05 15:29 man-db
-rwxr-xr-x  1 root root   606 2010-03-24 11:16 mlocate
-rwxr-xr-x  1 root root  1154 2011-04-19 09:08 ntp
-rw-r--r--  1 root root   102 2010-04-15 01:29 .placeholder
-rwxr-xr-x  1 root root  2149 2009-06-16 15:12 popularity-contest
-rwxr-xr-x  1 root root   383 2011-04-14 19:41 samba
-rwxr-xr-x  1 root root  3349 2010-04-15 01:29 standard

Hoff das hilft dir weiter und die Angaben sind jetzt besser zu verstehen!! Aber beiM Befehl (ausführen des Scripts) ist das meiner Meinung nach nur ein Syntaxfehler ???

MFG

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi,

bitte den Ausfuehrbefehl kleinschreiben:

sudo /etc/cron.daily/./backup

Ausserdem hast du da einen Ordner unter /etc/cron.daily/Backup erstellt, zeige mal den Inhalt rekursiv:

ls -Rla /etc/cron.daily/Backup

Das Skript ist uebrigens nicht vollstaendig...

Goifalracer schrieb:

Hoff das hilft dir weiter und die Angaben sind jetzt besser zu verstehen!!

Ja, vielen Dank! 👍

Aber beiM Befehl (ausführen des Scripts) ist das meiner Meinung nach nur ein Syntaxfehler ???

Nein. Das "./" laesst das Skript mit der im Skript angegeben Shebang starten. Alternativ koennte man das auch ohne diesen Vorsatz starten (wenn die Datei als "ausfuehrbar" markiert ist) oder aber per "sudo bash" (wenn das wie in deinem Fall ein Bash-Skript ist).

Gruss Lasall

Goifalracer

(Themenstarter)

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

So Ausführbefehl kleingeschrieben dann kommt

/etc/cron.daily/./backup: 1: cript: not found
/etc/cron.daily/./backup: 4: /home/TestLaufwerk/TestDatei: Permission denied
/etc/cron.daily/./backup: 7: /home/Testdaten: Permission denied
mkdir: missing operand
Try `mkdir --help' for more information.
/etc/cron.daily/./backup: 30: mail: not found
.: 30: exit: not found

so der Inhalt nach dem Befehl

ls -Rla /etc/cron.daily/Backup

lautet

total 8
drwxrwxrwx 2 root root 4096 2011-07-30 19:33 .
drwxr-xr-x 3 root root 4096 2011-07-30 19:39 ..

Ja weil ich nach der Anleitung im Wiki gegangen bin und darauf habe ich anscheinend das unvollständige Skript eingefügt und es dann mit dem Befehl

sudo mv backup /etc/cron.daily 

laut Anleitung verschoben!!! Die Anleitung findest du am Anfang des Themas da ist ein Link! Was fehlt in dem Skript dann noch und was ist generell noch falsch????

MFG

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi,

Goifalracer schrieb:

Was fehlt in dem Skript dann noch und was ist generell noch falsch????

ziemlich viel fehlt, z.B. die eigentlich Backupprozedur.

Kannst du bitte explizit diese Datei auflisten (danach bitte wieder in das angenehme Bash-Highlighting packen):

cat /etc/cron.daily/backup

Gruss Lasall

Goifalracer

(Themenstarter)

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

Hab die Datei abgefragt

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
cript fuer inkrementelles Backup mit 30 taegigem Vollbackup

### Einstellungen ##
BACKUPDIR= /home/TestLaufwerk/Testdatei               # Pfad zum Backupverzeichni                                                                                                                     s
ROTATEDIR="media/backup/rotate"     # Pfad wo die Backups nach 30 Tagen konservi                                                                                                                     ert werden
TIMESTAMP="timestamp.dat"                 # Zeitstempel
SOURCE= /home/Testdaten                          # Verzeichnis(se) welche(s) gesic                                                                                                                     hert werden soll(en)
DATUM="$(date +%d-%m-%Y)"             # Datumsformat einstellen
ZEIT="$(date +%H:%M)"                          # Zeitformat einstellen

### Verzeichnisse/Dateien welche nicht gesichert werden sollen ! Achtung keinen                                                                                                                      Zeilenumbruch ! ##
EXCLUDE="--exclude=home/user/Filme --exclude=home/user/Musik --exclude=home/user                                                                                                                     /Spiele --exclude=home/user/.VirtualBox  --exclude=home/user/.local/share/Trash"

### Wechsel in root damit die Pfade stimmen ##
cd /

### Backupverzeichnis anlegen ##
mkdir -p ${BACKUPDIR}

### Test ob Backupverzeichnis existiert und Mail an Admin bei fehlschlagen ##
if [ ! -d "${BACKUPDIR}" ]; then

mail -s "Backupverzeichnis nicht vorhanden!" root <<EOM
Hallo Admin,
das Backup am ${DATUM} konnte nicht erstellt werden. Das Verzeichnis ${BACKUPDIR                                                                                                                     } wurde nicht gefunden und konnte auch nicht angelegt werden.
Mit freundlichem Gruss Backupscript
EOM

 . exit 1
fi

### Alle Variablen einlesen und letzte Backupdateinummer herausfinden ##
set -- ${BACKUPDIR}/backup-???.tgz
lastname=${!#}
backupnr=${lastname##*backup-}
backupnr=${backupnr%%.*}
backupnr=${backupnr//\?/0}
backupnr=$[10#${backupnr}]

### Backupdateinummer automatisch um +1 bis maximal 30 erhoehen ##
if [ "$[backupnr++]" -ge 30 ]; then
mkdir -p ${ROTATEDIR}/${DATUM}-${ZEIT}

### Test ob Rotateverzeichnis existiert und Mail an Admin bei fehlschlagen ##
if [ ! -d "${ROTATEDIR}/${DATUM}-${ZEIT}" ]; then

mail -s "Rotateverzeichnis nicht vorhanden!" root <<EOM
Hallo Admin,
die alten Backups konnten am ${DATUM} nicht verschoben werden. Das Verzeichnis $                                                                                                                     {ROTATEDIR} wurde nicht gefunden und konnte auch nicht angelegt werden.
Mit freundlichem Gruss Backupscript
EOM

 . exit 1
else
mv ${BACKUPDIR}/* ${ROTATEDIR}/${DATUM}-${ZEIT}
fi

### Abfragen ob das Backupverschieben erfolgreich war ##
if [ $? -ne 0 ]; then

mail -s "Backupverschieben fehlerhaft!" root <<EOM
Hallo Admin,
die alten Backups konnte am ${DATUM} nicht verschoben werden.
Mit freundlichem Gruss Backupscript
EOM

exit 1
else

mail -s "Backupverschieben erfolgreich" root <<EOM
Hallo Admin,
die alten Backups wurde am ${DATUM} erfolgreich nach ${ROTATEDIR}/${DATUM}-${ZEI                                                                                                                     T} verschoben.
Mit freundlichem Gruss Backupscript
EOM

### die Backupnummer wieder auf 1 stellen ##
backupnr=1
fi
fi

backupnr=000${backupnr}
backupnr=${backupnr: -3}
filename=backup-${backupnr}.tgz

### Nun wird das eigentliche Backup ausgefuehrt ##
tar -czf ${BACKUPDIR}/${filename} -g ${BACKUPDIR}/${TIMESTAMP} ${SOURCE} ${EXCLU                                                                                                                     DE}

### Abfragen ob das Backup erfolgreich war ##
if [ $? -ne 0 ]; then

mail -s "Backup (${SOURCE}) war fehlerhaft!" root <<EOM
Hallo Admin,
das Backup ${filename} am ${DATUM} wurde mit Fehler(n) beendet.
Mit freundlichem Gruss Backupscript
EOM

else

mail -s "Backup (${SOURCE}) war erfolgreich" root <<EOM
Hallo Admin,
das Backup ${filename} am ${DATUM} wurde erfolgreich beendet.
Mit freundlichem Gruss Backupscript
EOM

fi

vergr

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi,

ich nehme an, du siehst selber, dass das keine exakte Kopie der Skriptvorlage ist. Am Anfang und Ende fehlt etwas. Lege das Skript jetzt noch einmal komplett neu an - und diesmal vollstaendig. Danach fuehrst du es testweise manuell aus und postest hier wieder eventuelle Fehlermeldungen.

Gruss Lasall

Goifalracer

(Themenstarter)

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

Hey ich bins wieder ☺

Hab das Script so ergänzt wie es in der Ausgabe des Befehls

cat /etc/cron.daily/backup

erscheint

Dann möchte ich das Script manuell ausführen mit

sudo /etc/cron.daily/./backup

Es kommt folgende Fehlermeldung

/etc/cron.daily/./backup: 1: cript: not found
/etc/cron.daily/./backup: 4: /home/TestLaufwerk/Testdatei: Permission denied
/etc/cron.daily/./backup: 7: /home/: Permission denied
mkdir: missing operand
Try `mkdir --help' for more information.
/etc/cron.daily/./backup: 30: mail: not found
.: 30: exit: not found

Hab das Skript auch schon unter anderen Benutzern ausgeführt nicht das es mit irgendwelchen Ordnerrechten zu tun hat!! Weist du noch was ???

MFG

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi Goifalracer,

du schriebst:

Weist du noch was ???

ja und zwar sollst du das komplette Skript von

du schriebst:

Skripte/inkrementelles Backup

kopieren und unter /etc/cron.daily/backup speichern.

Oeffne dazu einen Editor mit Rootrechten:

gksudo gedit /etc/cron.daily/backup

Dann fuegst du dort den gesamten Inhalt ein (und passt diesen auf deine Beduerfnisse an), speicherst und schliesst. Jetzt setzt du noch die Ausfuehrrechte:

sudo chmod +x /etc/cron.daily/backup

Jetzt testest du das Skript:

sudo bash /etc/cron.daily/backup    # ich wechsel mal die Schreibweise, es geht aber auch anderen

Sollten noch immer Fehler auftreten, dann poste bitte wieder den Inhalt des Skriptes mit cat und ausserdem die komplette Ein- und Ausgabe des Skriptstartes.

Gruss Lasall

Goifalracer

(Themenstarter)

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

Hi Lasall

Hab das jetzt gemacht,beim ausführen mit

 sudo bash /etc/cron.daily/backup

kommt mal wieder ne Fehlermeldung

/etc/cron.daily/backup: line 1: cript: command not found
/etc/cron.daily/backup: line 4: /home/TestLaufwerk/Testdatei: is a directory
/etc/cron.daily/backup: line 7: /home/Testdaten: is a directory
mkdir: missing operand
Try `mkdir --help' for more information.
/etc/cron.daily/backup: line 23: mail: command not found
/etc/cron.daily/backup: line 29: exit: No such file or directory
tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.
/etc/cron.daily/backup: line 91: mail: command not found
/etc/cron.daily/backup: line 107: vergr: command not found

Warum die Meldung (/home/Testlaufwer/Testdatei ist ein Verzeichnis ?? Das soll doch so sein oder ??

MFG

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi Goifalracer,

ich kann mich nur wiederholen: Du hast das Skript nicht vollstaendig kopiert. Es fehlen die ersten paar Zeilen ☹ (und am Ende wahrscheinlich auch wieder die letzten paar Zeichen). Da ich keinen Zugriff auf deinen Rechner habe, kann ich dir da auch nicht helfen. Nutzt du vielleicht sowas wie Vim und versuchst direkt einzufuegen? Bei gedit ist eigentlich ein Copy&Paste ohne Weiteres moeglich. Gleiche also die ersten Zeilen jeweils ab. Erst ab dann kann ich wieder weiterhelfen.

Viel Erfolg!

Gruss Lasall

Goifalracer

(Themenstarter)

Anmeldungsdatum:
10. Mai 2011

Beiträge: 125

Wenn ich das richtig verstanden habe sollte ich den kompletten Inhalt des Scripts aus der Anleitung Skripte/inkrementelles Backup einfügen;die Datei speichern und die richtigen >Rechte vergeben,das alles hab ich gemacht,wenn ich

sudo vi /home/backup 

eingebe erscheint der selbe Text im Script wie in der Anleitung!! Den Text hab ich dann noch angepasst !!! Ich hab jetzt exakt den selben Text drin wie in der Anleitung!! Ich weiß nicht entweder steh ich voll am Schlauch,oder es ist ne doofe Kleinigkeit warum das ganze nicht geht !!!

Antworten |