backup Skript wöchentlich/monatlich
- Profbunny
- Beiträge: 592
- Registriert: 04.04.2004 11:12:29
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Bautzen
backup Skript wöchentlich/monatlich
Hi,
ich habe Probleme mit meinem Skript. Kurz zu meiner Idee, normalerweise habe ich btrbk über corn.weekly und cron.monthly ausgeführt. Was dazu führt, dass immer wenn die Zeit für cron.monthly dran ist, beide Skripte laufen und es dadurch sinnlos Festplattenplatz und Ausführungszeit verschlingt.
Dann kam mir die Idee, dies komplett über cron.weekly abzuhändeln und die Logik ins Skript zu schieben. Das Skript soll nun nach Wochennummern arbeiten. Quasi Woche im Monat 1-3,5 sind incementelle Backups und Woche 4 ist ein komplettes.
Hier nun das Skript:
Ich hoffe, ich habe mein Problem verständlich geschildert und ihr könnt mir helfen mein Problem zu lösen.
Auch ein anderer Ansatz für mein Grundsätzliches Problem wäre interessant, wie löst ihr das?
Micha
ich habe Probleme mit meinem Skript. Kurz zu meiner Idee, normalerweise habe ich btrbk über corn.weekly und cron.monthly ausgeführt. Was dazu führt, dass immer wenn die Zeit für cron.monthly dran ist, beide Skripte laufen und es dadurch sinnlos Festplattenplatz und Ausführungszeit verschlingt.
Dann kam mir die Idee, dies komplett über cron.weekly abzuhändeln und die Logik ins Skript zu schieben. Das Skript soll nun nach Wochennummern arbeiten. Quasi Woche im Monat 1-3,5 sind incementelle Backups und Woche 4 ist ein komplettes.
Hier nun das Skript:
Ich hoffe, ich habe mein Problem verständlich geschildert und ihr könnt mir helfen mein Problem zu lösen.
Auch ein anderer Ansatz für mein Grundsätzliches Problem wäre interessant, wie löst ihr das?
Micha
Zuletzt geändert von Profbunny am 16.07.2020 15:13:17, insgesamt 1-mal geändert.
Rechner / Server Debian sid
- MegaV0lt
- Beiträge: 173
- Registriert: 21.11.2011 11:16:07
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: backup Skript wöchentlich/monatlich
Oder eine einfache if-Abfrage:
Edit:
In der case Anweisung dürfte das '*' dazu führen, dass es immer mit ausgeführt wird
Code: Alles auswählen
if [[ "$WN" -ne 4 ]] ; then
echo "$WN wöchentlich"
"$W"
else
echo "$WN monatlich"
"$M"
fi
In der case Anweisung dürfte das '*' dazu führen, dass es immer mit ausgeführt wird
"Das Internet? Gibt's diesen Blödsinn immer noch?"
[Homer Simpson], Sicherheitsinspektor im Kernkraftwerk Springfield.
[Homer Simpson], Sicherheitsinspektor im Kernkraftwerk Springfield.
Re: backup Skript wöchentlich/monatlich
In deiner Log-Ausgabe ist nur ein wöchentlich zu finden, kein monatlich.Profbunny hat geschrieben:05.07.2020 11:57:31Leider werden beide case Anweisungen ausgeführt und ich verstehe nicht warum.
Und auch die Syntax deines case gibt das nicht her: Wird ein case-Zweig betreten, der mit ";;" abgeschlossen ist, dann ist das case danach beendet. Da wird nicht noch in einen anderen Zweig gesprungen. Somit kann deine Vermutung schon mal grundsätzlich nicht stimmen. Anders sähe es mit einem Terminator ";&", im case-Zweig, aus. Das wäre dann das Verhalten einer C-switch.
Dann würde sich der Asterisk "*" auch nicht als "Alles" verhalten, denn verschiedene Elemente werden mit eine Pipe "|" per Oder verknüpft "[1-3,5] | *". Wenn man einen * aber per oder verknüpft, dann kann man das davor auch einfach weglassen. Und so ein *, im case-Zweig, sollte wohl grundsätzlch eher alleine stehen, da er die Reste einsammeln soll.
- Profbunny
- Beiträge: 592
- Registriert: 04.04.2004 11:12:29
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Bautzen
Re: backup Skript wöchentlich/monatlich
@MegaVolt
Die Idee mit der Schleife gefällt mir schon mal gut, werde ich testen.
@tobo
Es wird beides ausgeführt, man sieht es an den Sternen vor den snapshots von home,media und handy.
Im log findet sich:
mir ist auch nicht klar, was die Ausgabe hinter dem M bedeutet?
Die Idee mit der Schleife gefällt mir schon mal gut, werde ich testen.
@tobo
Es wird beides ausgeführt, man sieht es an den Sternen vor den snapshots von home,media und handy.
Im log findet sich:
Code: Alles auswählen
/mnt/btrfs/root/rootfs/etc
+++ /mnt/btrfs/root/backup_btrbk/etc.20200705
--- /mnt/btrfs/root/backup_btrbk/etc.20200605
*** /mnt/backup/_btrbk/etc.20200705
--- /mnt/backup/_btrbk/etc.20200621
*** /mnt/vuplus/sysiphus/btrbk/etc.20200705.btrfs.bz2.gpg
--- /mnt/vuplus/sysiphus/btrbk/etc.20200621.btrfs.bz2.gpg
*** /home/mdomann/media/syncthing/backup/sysiphus/etc.20200705.btrfs.bz2.gpg
--- /home/mdomann/media/syncthing/backup/sysiphus/etc.20200621.btrfs.bz2.gpg'
++ /usr/sbin/btrbk --override=incremental=no -c /etc/btrbk/btrbk.conf run
+ M='--------------------------------------------------------------------------------
Rechner / Server Debian sid
Re: backup Skript wöchentlich/monatlich
Nochmal - syntaxbedingt, nein!Profbunny hat geschrieben:05.07.2020 16:47:50@tobo
Es wird beides ausgeführt, man sieht es an den Sternen vor den snapshots von home,media und handy.
Und verwechsle nicht beide case-Zweige werden durchlaufen und beide Backups werden ausgeführt!? Beide Backups werden bereits hier ausgeführt:
Code: Alles auswählen
W=$(/usr/sbin/btrbk -c /etc/btrbk/btrbk.conf run) #wöchentlich
M=$(/usr/sbin/btrbk --override=incremental=no -c /etc/btrbk/btrbk.conf run) #monatlich
Code: Alles auswählen
$ cat FILE
cat: FILE: No such file or directory
$ f=$(echo test > FILE)
$ cat FILE
test
$ rm FILE
$ f='echo test > FILE' ##EDIT##
$ cat FILE
cat: FILE: No such file or directory
$ eval "$f"
$ cat FILE
test
EDIT: Da hatte ich jetzt selbst einen Fehler eingebaut. Dummerweise hat es im Beispiel trotzdem funktioniert!? In der mit EDIT kommentierten Zeile habe ich das umschließende $() entfernt.
Zuletzt geändert von tobo am 05.07.2020 18:30:25, insgesamt 3-mal geändert.
- MegaV0lt
- Beiträge: 173
- Registriert: 21.11.2011 11:16:07
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: backup Skript wöchentlich/monatlich
Das ist das Problem:
Wird hier bereits ausgeführt!
Das muss anders gelöst werden!
Das könnte gehen:
Ich würde die Parameter vom Ausführbaren Teil trennen.
Code: Alles auswählen
W=$(/usr/sbin/btrbk -c /etc/btrbk/btrbk.conf run) #wöchentlich
M=$(/usr/sbin/btrbk --override=incremental=no -c /etc/btrbk/btrbk.conf run) #monatlich
Das muss anders gelöst werden!
Das könnte gehen:
Code: Alles auswählen
W="/usr/sbin/btrbk -c /etc/btrbk/btrbk.conf run" #wöchentlich
M="/usr/sbin/btrbk --override=incremental=no -c /etc/btrbk/btrbk.conf run" #monatlich
"Das Internet? Gibt's diesen Blödsinn immer noch?"
[Homer Simpson], Sicherheitsinspektor im Kernkraftwerk Springfield.
[Homer Simpson], Sicherheitsinspektor im Kernkraftwerk Springfield.
- Profbunny
- Beiträge: 592
- Registriert: 04.04.2004 11:12:29
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Bautzen
Re: backup Skript wöchentlich/monatlich
Danke, jetzt habe ich das Problem verstanden und die Befehle direkt in die case Anwendung geschoben, nun scheint es zu gehen.
Rechner / Server Debian sid