Quimoxx
Anmeldungsdatum: 29. Dezember 2011
Beiträge: 30
|
Guten Morgen, ich habe mal wieder ein kleines Problem und hoffe, dass Ihr mir helfen könnt! Ich habe, wie in dem Artikel "Backup mit RSYNC" (https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC/#source-3) das minimale Skript erstellt: #!/bin/sh
quelle=/media/PGO-Dateien-1/Projekte-NEU
ziel=/media/SICHERUNG/
heute=$(date +%Y-%m-%d)
rsync -avR --delete "${quelle}" "${ziel}${heute}/" --link-dest="${ziel}last/"
ln -nsf "${ziel}${heute}" "${ziel}last"
exit 0
Das funktioniert auch soweit ganz gut, aber jetzt soll ein weiterer Ordner gesichert werden. Wenn ich ihn jetzt einfach dahinter schreibe
quelle=/media/PGO-Dateien-1/Projekte-NEU /media/PGO-Dateien-1/Büro-NEU
wird plötzlich der gesamte Ordner /media/PGO-Dateien-1
gesichert. Ich habe es ebenso mit "SOURCES" anstatt "quelle" versucht, aber da macht das System anscheinend keinen Unterschied. Wenn ich eine weitere Zeile "quelle" anlege, wird diese einfach ignoriert. Beispiel:
quelle=/media/PGO-Dateien-1/Projekte-NEU
quelle=/media/PGO-Dateien-1/Büro-NEU Irgendwie habe ich keinen Plan, was ich zu tun habe, damit nur diese beiden gewünschten Ordner gesichert werden.
Die größeren Scripts sehen zwar toll aus, aber da weiß ich zum größten Teil nicht, was da eigentlich passiert. Falls es auch möglich ist, ein einfaches cp -r /media/xxx /media/yyy
als cronjob einzurichten, wäre mir das auch recht. Hauptsache die beiden Ordner werden gesichert. Ich habe schon mehrere Artikel dazu gelesen, bin aber leider nicht schlauer als vorher. Wahrscheinlich habe ich da nur einen kleinen Gedankenfehler, aber ein kleiner Schubs in die richtige Richtung wäre super. Oder habt Ihr vielleicht noch bessere Ideen? Vielen Dank und freundliche Grüße Timo Moderiert von kB: In das zuständige Forum verschoben.
|
STRAGIC-IT
Anmeldungsdatum: 3. Januar 2006
Beiträge: 3242
Wohnort: Fürth
|
Hallo Quimoxx,
nutze doch ein passendes Backup-Programm, z.B. LUCKYBACKUP. Dann ist es einfacher. Bye
HS
|
Quimoxx
(Themenstarter)
Anmeldungsdatum: 29. Dezember 2011
Beiträge: 30
|
Hi STRAGIC-IT, danke für Deine Antwort!
Im Wiki seht allerdings "luckyBackup ist ein grafisches Programm zur Datensicherung...". Ich habe den Server ohne grafische Oberfläche installiert. Daher dachte ich, es ist mit einem kleinen Script einfacher.
|
STRAGIC-IT
Anmeldungsdatum: 3. Januar 2006
Beiträge: 3242
Wohnort: Fürth
|
Hallo Quimoxx,
wir machen seit Jahren SERVER nur noch mit GUI (XFCE Minimalversion). Es macht das Kraut nicht fett, geht genauso schnell und vereinfacht doch einiges. Wir haben jedenfalls noch keinen Nachteil dadurch gehabt. Bye
HS
|
phanthomasX
Anmeldungsdatum: 26. Dezember 2008
Beiträge: 99
|
Eine weitere Möglichkeit wäre: Das Skript noch einmal mit anderer Quelle durchlaufen zu lassen. Die Variablen ZIEL und HEUTE bleiben ja gleich. Bei der Gelegenheit kann man die Quelle auch als Parameter an das Skript übergeben.
./meinBackupskript.sh "/media/PGO-Dateien-1/Projekte-NEU"
./meinBackupskript.sh "/media/PGO-Dateien-1/Büro-NEU" [...]
quelle=$1
ziel=/media/SICHERUNG/
heute=$(date +%Y-%m-%d)
[...] Oder man liest alle Quellverzeichnisse aus einer Textdatei. Dazu wird RSYNC mit dem Parameter --files-from= aufgerufen.
(Den Befehl habe ich in der Form nicht getestet. Er könnte so aussehen.) rsync -a –files-from=meineListe.txt "${ziel}${heute}/"
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8628
Wohnort: Münster
|
Quimoxx schrieb: […]
#!/bin/sh
quelle=/media/PGO-Dateien-1/Projekte-NEU
ziel=/media/SICHERUNG/
heute=$(date +%Y-%m-%d)
rsync -avR --delete "${quelle}" "${ziel}${heute}/" --link-dest="${ziel}last/"
ln -nsf "${ziel}${heute}" "${ziel}last"
exit 0
Aufruf-Parameter sollen nicht mit Optionen gemischt werden, sondern immer nach allen Optionen angegeben werden. Verwende besser: rsync -avR --delete --link-dest="${ziel}last/" "${quelle}" "${ziel}${heute}/"
Das funktioniert auch soweit ganz gut, aber jetzt soll ein weiterer Ordner gesichert werden. Wenn ich ihn jetzt einfach dahinter schreibe
quelle=/media/PGO-Dateien-1/Projekte-NEU /media/PGO-Dateien-1/Büro-NEU
Du musst das Leerzeichen schützen. Verwende diese Schreibweise: quelle='/media/PGO-Dateien-1/Projekte-NEU /media/PGO-Dateien-1/Büro-NEU'
wird plötzlich der gesamte Ordner /media/PGO-Dateien-1
gesichert.
Das ist mir, auch mit Deiner fehlerhaften Schreibweise für den Wert von quelle , nicht erklärlich. Eigentlich müsste das Skript dann mit Fehler abbrechen und gar nichts sichern.
|
Quimoxx
(Themenstarter)
Anmeldungsdatum: 29. Dezember 2011
Beiträge: 30
|
kB schrieb: Aufruf-Parameter sollen nicht mit Optionen gemischt werden, sondern immer nach allen Optionen angegeben werden. Verwende besser: rsync -avR --delete --link-dest="${ziel}last/" "${quelle}" "${ziel}${heute}/"
Sollte das dann auch im Wiki geändert werden? Von da habe ich es nämlich übernommen. Ich habe mir das Ganze nochmal gut überlegt und habe mich im Nachhinein von STRAGIC-IT "überreden" lassen. Ich habe mich jetzt probehalber erst mal für Webmin entschieden und wenn es keine Komplikationen gibt, werde ich dabei bleiben. Die Datensicherung ließ sich sehr schnell einstellen und funktioniert jetzt einwandfrei. War eine gute Idee mit der GUI! 😉 Vielen Dank STRAGIC-IT, phanthomasX und kB, Ihr wart mir eine sehr große Hilfe! Ein schönes Wochenende an Alle! Timo
|
rleofield
Anmeldungsdatum: 14. September 2008
Beiträge: 779
Wohnort: Görlitz
|
Quimoxx schrieb: Guten Morgen, ich habe mal wieder ein kleines Problem und hoffe, dass Ihr mir helfen könnt!
Ok, Das erspart aber nicht, dass man sich ein wenig auskennt, was man da so bastelt.
Ich habe, wie in dem Artikel "Backup mit RSYNC" (https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC/#source-3) das minimale Skript erstellt: #!/bin/sh
quelle=/media/PGO-Dateien-1/Projekte-NEU
ziel=/media/SICHERUNG/
heute=$(date +%Y-%m-%d)
rsync -avR --delete "${quelle}" "${ziel}${heute}/" --link-dest="${ziel}last/"
ln -nsf "${ziel}${heute}" "${ziel}last"
exit 0
Das funktioniert auch soweit ganz gut, aber jetzt soll ein weiterer Ordner gesichert werden. Wenn ich ihn jetzt einfach dahinter schreibe
quelle=/media/PGO-Dateien-1/Projekte-NEU /media/PGO-Dateien-1/Büro-NEU
wird plötzlich der gesamte Ordner /media/PGO-Dateien-1
gesichert. Ich habe es ebenso mit "SOURCES" anstatt "quelle" versucht, aber da macht das System anscheinend keinen Unterschied.
Das mit dem Verwenden des Skriptes ist ok. Aber einfach so Parameter ändern, ist nicht ok, wenn man nicht verstanden hat, wie rsync tickt. Mal rsync im Skript mit der Option -n aufrufen, also statt '-avR' '-avRn' schreiben und das Skript mit 'bash -x' starten. Mit -n zeigt rsync, was es macht, macht aber nix wirklich. Und bash -x zeigt jede Zeile des Skriptes mit den Ersetzungen an. Dann schauen, was bei rsync als Parameter ankommt und ob rsync das auch so braucht. Wenn man nur wenig versteht, würde ich die Zeilen im Skript, also von quelle bis nach ln, einfach verdoppeln und quelle und ziel im 2. Abschnitt neu eintragen. Die Zeile mit heute kann man ja vor alle anderen Zeilen stellen, dann ist heute für beide Abschnitte gleich. Damit umgeht man die Probleme mit rsync und spart sich das Lesen des doch umfangreichen Manuals. Ich habe schon mehrere Artikel dazu gelesen, bin aber leider nicht schlauer als vorher.
Versteh ich gut. Skripte, Variable und rsync, das ist viel zum Lesen, wenn man wenig Erfahrung hat. I hope this helps, rleofield
|
Quimoxx
(Themenstarter)
Anmeldungsdatum: 29. Dezember 2011
Beiträge: 30
|
rleofield schrieb: Das mit dem Verwenden des Skriptes ist ok. Aber einfach so Parameter ändern, ist nicht ok, wenn man nicht verstanden hat, wie rsync tickt.
Ich habe keine Parameter, sondern lediglich Quelle und Ziel geändert. Sonst brauche ich mich ja auch nicht wundern, dass es nicht funktioniert... 😉 Ansonsten habe ich das Skript 1 zu 1 aus dem Wiki übernommen.
Mal rsync im Skript mit der Option -n aufrufen, also statt '-avR' '-avRn' schreiben und das Skript mit 'bash -x' starten. Mit -n zeigt rsync, was es macht, macht aber nix wirklich. Und bash -x zeigt jede Zeile des Skriptes mit den Ersetzungen an. Dann schauen, was bei rsync als Parameter ankommt und ob rsync das auch so braucht.
Das ist eine gute Idee, hat sich jetzt aber erledigt. Ich war einfach nicht bereit, mir noch weiter den Kopf darüber zu zerbrechen und habe Webmin installiert. Damit läuft die Sicherung.
Wenn man nur wenig versteht, würde ich die Zeilen im Skript, also von quelle bis nach ln, einfach verdoppeln und quelle und ziel im 2. Abschnitt neu eintragen. Die Zeile mit heute kann man ja vor alle anderen Zeilen stellen, dann ist heute für beide Abschnitte gleich.
Ok, das macht Sinn. Ich habe gedacht, dass es ausreicht, wenn ich - wie schon beschrieben - einfach quelle=/media/PGO-Dateien-1/Projekte-NEU /media/PGO-Dateien-1/Büro-NEU
mache. Im Wiki (und überall anders) sind die verschiedenen Pfade auch immer mit einem Leerzeichen getrennt angegeben. Zum Testen hatte ich dann noch auf gut Glück die Quelle verdoppelt quelle=/media/PGO-Dateien-1/Projekte-NEU
quelle=/media/PGO-Dateien-1/Büro-NEU
aber auch das hat nichts gebracht.
Skripte, Variable und rsync, das ist viel zum Lesen, wenn man wenig Erfahrung hat.
Stimmt. 😉 I hope this helps,
Hat es, danke! ☺
|
wxpte
Anmeldungsdatum: 20. Januar 2007
Beiträge: 1182
Wohnort: Schäl Sick
|
Quimoxx schrieb: Zum Testen hatte ich dann noch auf gut Glück die Quelle verdoppelt quelle=/media/PGO-Dateien-1/Projekte-NEU
quelle=/media/PGO-Dateien-1/Büro-NEU
aber auch das hat nichts gebracht.
Das kann auch nichts bringen, weil hier der Wert aus der ersten Zeile einfach mit dem Wert aus der zweiten Zeile überschrieben wird, noch bevor rsync überhaupt zur Ausführung kommt.
|
rleofield
Anmeldungsdatum: 14. September 2008
Beiträge: 779
Wohnort: Görlitz
|
Quimoxx schrieb: rleofield schrieb: Das mit dem Verwenden des Skriptes ist ok. Aber einfach so Parameter ändern, ist nicht ok, wenn man nicht verstanden hat, wie rsync tickt.
Ich habe keine Parameter, sondern lediglich Quelle und Ziel geändert.
Damit hast Du die Parameter, die rsync bekommt, geändert.
Sonst brauche ich mich ja auch nicht wundern, dass es nicht funktioniert... 😉 Ansonsten habe ich das Skript 1 zu 1 aus dem Wiki übernommen.
Mal rsync im Skript mit der Option -n aufrufen, also statt '-avR' '-avRn' schreiben und das Skript mit 'bash -x' starten. Mit -n zeigt rsync, was es macht, macht aber nix wirklich. Und bash -x zeigt jede Zeile des Skriptes mit den Ersetzungen an. Dann schauen, was bei rsync als Parameter ankommt und ob rsync das auch so braucht.
Das ist eine gute Idee, hat sich jetzt aber erledigt. Ich war einfach nicht bereit, mir noch weiter den Kopf darüber zu zerbrechen und habe Webmin installiert. Damit läuft die Sicherung.
Wenn man nur wenig versteht, würde ich die Zeilen im Skript, also von quelle bis nach ln, einfach verdoppeln und quelle und ziel im 2. Abschnitt neu eintragen. Die Zeile mit heute kann man ja vor alle anderen Zeilen stellen, dann ist heute für beide Abschnitte gleich.
Ok, das macht Sinn. Ich habe gedacht, dass es ausreicht, wenn ich - wie schon beschrieben - einfach quelle=/media/PGO-Dateien-1/Projekte-NEU /media/PGO-Dateien-1/Büro-NEU
mache. Im Wiki (und überall anders) sind die verschiedenen Pfade auch immer mit einem Leerzeichen getrennt angegeben. Zum Testen hatte ich dann noch auf gut Glück die Quelle verdoppelt quelle=/media/PGO-Dateien-1/Projekte-NEU
quelle=/media/PGO-Dateien-1/Büro-NEU
aber auch das hat nichts gebracht.
In jeder Programmiersprache, d.h. auch in Bash Skripten, wird eine Variable überschrieben, wenn sie 2x einen Wert zugewiesen bekommt. Wenn Du der Variable quelle 2x einen Wert zuweist, gewinnt bei der Bash die letzte Zuweisung. Einige Programmiersprachen warnen, einige nicht. Man kann Variable in der Bash auf readonly setzen, dann bekommt man auch eine Warnung. Skripte, Variable und rsync, das ist viel zum Lesen, wenn man wenig Erfahrung hat.
Stimmt. 😉
Würde ich machen, es ist nicht das letzte Skript, mit dem Du es zu tun haben wirst. Und Basiswissen schadet nie. Dann aber nach Themen trennen. D.h. erst Skripte anschauen, dann rsync. Die Gefahr ist wirklich, das Du ohne Basiswissen wieder mal ein Skript abschreibst, nicht verstehst, was da passiert rumprobierst und u.U. Dein Linux verlierst. Grad rsync ist nicht ungefährlich. Es überschreibt Daten am Ziel. Ein Fehler, z.B. Vertauschen von Quelle und Ziel und die Option --delete, reichen, um sein System in die Linuxhölle zu befördern. Ich kenne Leute, die genau das gemacht haben und dann wütend ihr Linux als 'untauglich und bescheuert' weggeschmissen haben und wieder bei Windows sind. Sie kommen alle wieder, zu Linux. Nur mit dem Umweg der harten Tour. I hope this helps,
Hat es, danke! ☺
Noch viel Freude mit Linux. Gruß
rleofield
|
Alkinoos
Anmeldungsdatum: 10. Oktober 2018
Beiträge: 78
|
Wie wxpte schon angesprochen hat, bringt es nichts eine Variable zweimal zu definieren, weil dann eben der Wert überschrieben wird. Die einfachste - und wahrscheinlich verständlichste - Lösung ist, dass du einfach eine Variable "quelle2" definierst und iese dann auch noch synchronisieren lässt.
|
Quimoxx
(Themenstarter)
Anmeldungsdatum: 29. Dezember 2011
Beiträge: 30
|
rleofield schrieb: Ich kenne Leute, die genau das gemacht haben und dann wütend ihr Linux als 'untauglich und bescheuert' weggeschmissen haben und wieder bei Windows sind. Sie kommen alle wieder, zu Linux. Nur mit dem Umweg der harten Tour.
Zurück zu Windows? Haha, NIEMALS! Ich nutze Ubuntu jetzt schon einige Jahre als Hauptsystem und komme damit super zurecht. rsync scheint aber tatsächlich umfangreicher zu sein, als ich dachte. Ok Leute, nochmal danke für Eure Erklärungen. Ich setze das Thema jetzt als gelöst.
Sehr geil, dass es hier immer Hilfe gibt, die ernst gemeint ist, ohne hochnäsige Schlauberger, die meinen, etwas Besseres zu sein. Vielen Dank!!
|
wxpte
Anmeldungsdatum: 20. Januar 2007
Beiträge: 1182
Wohnort: Schäl Sick
|
Alkinoos schrieb: Wie wxpte schon angesprochen hat, bringt es nichts eine Variable zweimal zu definieren, weil dann eben der Wert überschrieben wird. Die einfachste - und wahrscheinlich verständlichste - Lösung ist, dass du einfach eine Variable "quelle2" definierst und iese dann auch noch synchronisieren lässt.
Ohne das jetzt getestet zu haben, würde ich es eher mit einem Hier-Dokument lösen, etwa so:
1
2
3
4
5
6
7
8
9
10
11
12
13 | #!/bin/sh
ziel=/media/SICHERUNG/
heute=$(date +%Y-%m-%d)
while read quelle
do
rsync -avR --delete "${quelle}" "${ziel}${heute}/" --link-dest="${ziel}last/"
ln -nsf "${ziel}${heute}" "${ziel}last"
done << quellen
/media/PGO-Dateien-1/Projekte-NEU
/media/PGO-Dateien-1/Büro-NEU
quellen
|
|