wafer
Anmeldungsdatum: 25. März 2014
Beiträge: 2
|
Ich probiere gerade pigz als Komprimierungsprogramm aus in diesem Script. Das kann zur Leistungssteigerung mehrere Kerne nutzen.
Sollte aber vorher noch mit apt-get pigz installiert werden. tar -c --use-compress-program=pigz -p -f ${BACKUPDIR}/${filename} -g ${BACKUPDIR}/${TIMESTAMP} ${SOURCE} ${EXCLUDE}
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28316
|
Hallo, @wafer: Willkommen bei uu.de ☺ Wenn du dich ein bisschen mit pigz auskennst könntest du direkt eine Wikiartikel dazu erstellen. So was haben wir noch nicht. Gruß, noisefloor
|
wafer
Anmeldungsdatum: 25. März 2014
Beiträge: 2
|
Hallo, @noisefloor: Danke. ☺ Bin gerade ein wenig am experimentieren damit, kann aber noch etwas dauern mit dem Artikel. Hatte Vorgestern ein Backup von rund 700GB an RAW-Bildern gemacht.
Habe leider nicht genaue Werte, aber mit pigz war es ca 3-4x so schnell. Diskutilizaion lag selbst mit pigz bei nur ~70%.
Also eindeutig schonmal eine Empfehlung meinerseits.
|
Poppei
Anmeldungsdatum: 23. April 2005
Beiträge: 478
|
Hallo! Ich nutze dieses Skript schon ewig und es erfüllt alle meine Anforderungen. Ich hatte schon damals Probleme, wenn ich "Ubuntu One" als Backupdir eingestellt habe. Ein "Ubuntu\ One" wurde nicht akzeptiert. Ich habe also das Verzeichnis von Ubuntu One in UbuntuOne geändert. Jetzt bei der Umstellung auf Google Drive, das dank Grive auch zuverlässig alles in die Cloud synchronisiert, bin ich dem Problem nachgegangen. Und zwar scheint es nicht möglich innerhalb der Bash-Skripte Ordnerverzeichnisse mit Leerzeilen zu verarbeiten, zumindest nicht, wenn diese in Variablen übergeben werden (sorry für meine falsche Ausdrucksweise, aber ich bin kein Programmierer). Jedenfalls habe ich als Lösung hier etwas gefunden: http://board.gulli.com/thread/860209-bash-skript-wie-ein-verzeichnis-mit-leerzeichen-im-namen-aufrufen/ Ich habe daraufhin in dem Skript überall wo $BACKUPDIR auftauchte, das einfach in Anführungszeichen gesetzt, also "$BACKUPDIR
Nun steht bei mir im Skript ganz normal: home/poppei/Google Drive/Backup und es klappt einwandfrei. Sollte man im Wikiartikel nicht vielleicht darauf hinweisen bzw. das Skript entsprechend überarbeiten? Bin kein Programmierer, daher frage ich hier lieber mal nach. 😉
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28316
|
Hallo, klingt plausibel. Müsste sich aber endgültig mal ein echter Bash-Kenner zu äußern. Der bin ich nämlich auch nicht 😉 Gruß, noisefloor
|
Kelhim
Anmeldungsdatum: 18. September 2006
Beiträge: 3642
|
Ich bin auch kein echter Bash-Kenner, aber das mit den Anführungszeichen um $BACKUPDIR herum ist nur logisch. Poppei schrieb: Sollte man im Wikiartikel nicht vielleicht darauf hinweisen bzw. das Skript entsprechend überarbeiten? Bin kein Programmierer, daher frage ich hier lieber mal nach. 😉
Hau rein! 😀
|
Poppei
Anmeldungsdatum: 23. April 2005
Beiträge: 478
|
Hallo! Na gut. Also ich habe dann logischerweise das ROTATEDIR und SOURCE auch in Anführungstriche gemacht. Kann ja sein, dass die Nutzer Verzeichnisse mit Leerzeichen angeben. Bevor ich die Wikiseite ändere, hier mal zur Ansicht. Wenn keine Widersprüche kommen, werde ich die Wikiseite am WE überarbeiten. ☺ 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 | #!/bin/bash
# Script fuer inkrementelles Backup mit 30 taegigem Vollbackup
### Einstellungen ##
BACKUPDIR="media/backup" # Pfad zum Backupverzeichnis
ROTATEDIR="media/backup/rotate" # Pfad wo die Backups nach 30 Tagen konserviert werden
TIMESTAMP="timestamp.dat" # Zeitstempel
SOURCE="home/user" # 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
. 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}-${ZEIT} 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 -cpzf "${BACKUPDIR}"/${filename} -g "${BACKUPDIR}"/${TIMESTAMP} "${SOURCE}" ${EXCLUDE}
### 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
|
|
u1000
Anmeldungsdatum: 2. Oktober 2011
Beiträge: 1850
|
Zur Info: Das Quoting im Script ist aktuell immer noch unzureichend. Ggf. sollte der Artikel in die Baustelle verschoben werden, bis sich das jemand mal annimmt... Viele Grüße u1000 P.S. ich mach das nicht, da ich dieses Script nicht mag ☹
Ich verwende lieber das rsync Backup Script.
|
flosch369
Anmeldungsdatum: 5. März 2009
Beiträge: 132
|
Hallo, kann mir jemand bitte die Zeile
erläutern? Der Punkt-Operator steht doch für "sourcen", oder nicht? Was muss ich bei exit sourcen? Warum tut es nicht ein einfaches
Viele Grüße Florian PS: außerdem ist in Zeile 80 ein "fi" zuviel, oder nicht?
|
Bonanza-Fahrad
Anmeldungsdatum: 10. September 2016
Beiträge: Zähle...
|
Aber das ganze Skript (siehe oben) müsste mal gründlich überarbeitet werden, da das Quoting schlecht ist und wegen einiger anderer Dinge. (Quelle)
Moderiert von noisefloor: Zitat vervollständigt, damit man wenigsten weiß, warum es geht bzw. was überarbeitungsbedürftig ist. Bitte in Zukunft so zitieren, dass der Sinn bzw. die Aussage des Zitats nicht verschoben wird!
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28316
|
Hallo, @Bonanza-Fahrrad: fühl' dich berufen, den Artikel zu überarbeiten. Dafür können wir dir gerne den Artikel in die Baustelle verschieben. Gruß, noisefloor
|
Alti70
Anmeldungsdatum: 25. Oktober 2016
Beiträge: 3
|
Hallo ich habe den Effekt gehabt, dass das Script plötzlich als incremental ein fullbackup gemacht hat, also angenommen hat alle Dateien hätten sich plötzlich aktualisiert.
Woran liegt das und wie kann man das verhindern? total 211787868
drwxrwxrwx 1 root root 4096 Oct 24 22:00 .
drwxrwxrwx 1 root root 4096 Oct 24 22:00 ..
-rwxrwxrwx 1 root root 108435109139 Oct 22 07:38 backup-Benutzer-001.tgz
-rwxrwxrwx 1 root root 64183 Oct 22 22:00 backup-Benutzer-002.tgz
-rwxrwxrwx 1 root root 141752 Oct 23 22:00 backup-Benutzer-003.tgz
-rwxrwxrwx 1 root root 108435248382 Oct 25 07:39 backup-Benutzer-004.tgz
-rwxrwxrwx 1 root root 193734 Oct 25 07:39 timestamp.dat
Gruß
|
Alti70
Anmeldungsdatum: 25. Oktober 2016
Beiträge: 3
|
Hallo, inzwischen weis ich, wann tar ein Vollbackup als inkrementelles Backup macht. Also als inkrementelles Backup alle Dateien sichert. Nach einem Neustart!!! Weis jemand wie ich das Verhindern kann?
|
crazy-biscuit
Supporter
Anmeldungsdatum: 6. November 2010
Beiträge: 4842
|
Hat jemand von euch das Skript aktuell in Benutzung? Da es für eine relativ kritische Tätigkeit genutzt wird, sollte es im Grunde schon zuverlässig funktionieren. Meine Frage bezieht sich auf die Aktualität des Artikels. Da im Grunde aber nur mit elementaren tools und Bash-Commandos gearbeitet wird, sollte es natürlich eigentlich keine Probleme geben. Das mit dem falschen Full-Backup ist natürlich ärgerlich. Woran es liegt, dass dies ausgeführt wird kann ich gerade so schnell nicht nachvollziehen. Wenn ich die Tage etwas Zeit finde, werde ich damit experimentieren.
|
coolwalda
Anmeldungsdatum: 24. Januar 2017
Beiträge: 106
|
Alaaf! crazy-biscuit schrieb: Hat jemand von euch das Skript aktuell in Benutzung?
Ich nutze das Skript für mein Server-Backup (kleines Setup für den Heimgebrauch). Das Skript läuft alle vier Stunden und verrichtet zuverlässig seinen Dienst, es sichert ein LVM-Snapshot. Ich habe den Thread hier zum Anlass genommen, eine Sicherung lokal zurückzuspielen und mittels diff -uNrq / /<RESTORE-PFAD> mit dem Systemstand zu vergleichen. Alles da, was da sein soll. Meiner Meinung nach funktioniert das Skript. VG,
Coolwalda
|