Hallo edle Coder,
ich habe mal mein Backupscript ein wenig weiter verfeinertt. Mailfunktionen, Sicherheitsabfragen und Backuprotate eingebaut. Es funktioniert alles hervorragend bis auf einen Schönheitsfehler, welchen ich beim besten Willen nicht wegbekomme/finde.
Es soll nach 30 Tagen (das Script läuft per Anacron 1x täglich, also richtger müsste es heissen nach 30 Aufrufen) der Inhalt des Backupverzeichnisses verschoben werden (also backup-001.tgz - backup-030.tgz) und ein neues Vollbackup im "alten Backupverzeichniss angelegt werden.
Nun es klappt hervorragend. Alles wird wie gewollt verschoben nur das neue Vollbackup beginnt dann nicht wie es soll mit backup-001.tgz sondern mit backup-000.tgz. Das bedeutet das ab dem ersten Rotate immer 31 anstatt 30 Dateien verschoben werden. Ist soweit ja kein Beinbruch, jedoch nervt es mich und viel mehr noch nervt es mich das ich den Fehler nicht finden und lösen kann.
Ich habe das Script mal hier hin gepastet. http://nopaste.debianforum.de/7298
Vieleicht findet jemand den Fehler und kann mir behilflich sein. Auch wenn der Code funktioniert, kann natürlich überflüssiges entfernt / verbessertwerden. Ich habe nicht wirkliche Ahnung vom coden sondern bastel nur so für mich hin. Also wenn es was zu verbessern gibt, dann bitte ich auch da um Eure Hilfe.
Lieben Gruß
Cassadi
Schönheitsfehler im Backupscript
- Cassadi
- Beiträge: 135
- Registriert: 19.03.2005 12:58:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Schönheitsfehler im Backupscript
Ich würde gerne die Welt verbessern, doch Gott gibt mir den Quellcode nicht.
Märchenbasar - Tritt ein und lasse dich verzaubern!
Märchenbasar - Tritt ein und lasse dich verzaubern!
Die Formatierung ist irgendwie von dem Script verloren gegangen
Also, in Zeile 37 bis 42, also beim Starten des Scripts, wird die Variable "backupnr" ermittelt , in Zeile 103 bis 108, also gleich nach dem Verschieben, wird diese Variable nochmals ermittelt.
In der Zeile 45 hast du ein "$[backupnr++]" und erhöhst damit diese gefundene Nummer um 1, daher beginnst du hier auch mit 1
Nach der Zeile 108 erhöhst du die Nummer jedoch nicht, daher wird das erste Backup nach dem Verschieben mit 0 angelegt.
Eigentlich könntest du auch die Zeilen 103-108 durch
ersetzen
Gruß
gms
Also, in Zeile 37 bis 42, also beim Starten des Scripts, wird die Variable "backupnr" ermittelt , in Zeile 103 bis 108, also gleich nach dem Verschieben, wird diese Variable nochmals ermittelt.
In der Zeile 45 hast du ein "$[backupnr++]" und erhöhst damit diese gefundene Nummer um 1, daher beginnst du hier auch mit 1
Nach der Zeile 108 erhöhst du die Nummer jedoch nicht, daher wird das erste Backup nach dem Verschieben mit 0 angelegt.
Eigentlich könntest du auch die Zeilen 103-108 durch
Code: Alles auswählen
backupnr=1
Gruß
gms
-
- Beiträge: 260
- Registriert: 04.12.2006 11:37:59
Hallo,
mir gefällt das Skript nicht, wobei ja auch jeder seine eigene Art zu schreiben hat ...
Zeile 13 - 34 kannst Du löschen. Die ergeben meiner Meinung nach keinen Sinn.
ein einfaches mkdir -p ${BACKUPDIR} macht das gleiche.
Das gilt später für die anderen Zeilen auch.
date +%d-%m-%Y-%H:%M würde ich als Variable definieren
Wenn das ganze dann noch in Funktionen wäre, würde es auch etwas übersichtlicher wirken.
MfG
mir gefällt das Skript nicht, wobei ja auch jeder seine eigene Art zu schreiben hat ...
Zeile 13 - 34 kannst Du löschen. Die ergeben meiner Meinung nach keinen Sinn.
ein einfaches mkdir -p ${BACKUPDIR} macht das gleiche.
Das gilt später für die anderen Zeilen auch.
date +%d-%m-%Y-%H:%M würde ich als Variable definieren
Wenn das ganze dann noch in Funktionen wäre, würde es auch etwas übersichtlicher wirken.
MfG
- Cassadi
- Beiträge: 135
- Registriert: 19.03.2005 12:58:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Hallo gms,
cool das isses. Ich danke dir recht herzlich. Der doppelte Kram 103 -108 ist raus und es wird nur die 1 vorgegeben. Somit gehts wieder voll mit 001 los.
Danke nochmals
Cassadi
cool das isses. Ich danke dir recht herzlich. Der doppelte Kram 103 -108 ist raus und es wird nur die 1 vorgegeben. Somit gehts wieder voll mit 001 los.
Danke nochmals
Cassadi
Ich würde gerne die Welt verbessern, doch Gott gibt mir den Quellcode nicht.
Märchenbasar - Tritt ein und lasse dich verzaubern!
Märchenbasar - Tritt ein und lasse dich verzaubern!
- Cassadi
- Beiträge: 135
- Registriert: 19.03.2005 12:58:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Hallo Cologne4711,
jo naja ich muss sagen ich habe vom Coden ja auch nicht wirklich Ahnung. Ich fummel eben einfach so lange bis es klappt, von daher sieht der Code sicher für Profis total versaut aus. Macht nichts ich will ja keinen preis gewinnen.
Zeile 13 -34 habe ich gemacht damit eben das Verzeichniss angelegt wird wenn es nicht vorhanden ist. Die 2. Abfrage dient dazu ob es wirklich angelegt wurde. Kann ja auch nen Fehler auftreten.
Mit mkdir -p kam ich beim Rotateverzeichniss ins Schleudern, weil er ja damit das nach dem ersten Rotate erzeugte rotate nchmal versuchen würde anzulegen, was mit Fehler ..ist schon vorhanden .. quitiert wird. Daher eben die "umständliche, aber fehlerfreie Variante.
Datum in eine Variable zu packen finde ich gut und werde ich machen. Sieht besser aus da gebe ich dir recht.
Danke für die Tips
Cassadi
jo naja ich muss sagen ich habe vom Coden ja auch nicht wirklich Ahnung. Ich fummel eben einfach so lange bis es klappt, von daher sieht der Code sicher für Profis total versaut aus. Macht nichts ich will ja keinen preis gewinnen.
Zeile 13 -34 habe ich gemacht damit eben das Verzeichniss angelegt wird wenn es nicht vorhanden ist. Die 2. Abfrage dient dazu ob es wirklich angelegt wurde. Kann ja auch nen Fehler auftreten.
Mit mkdir -p kam ich beim Rotateverzeichniss ins Schleudern, weil er ja damit das nach dem ersten Rotate erzeugte rotate nchmal versuchen würde anzulegen, was mit Fehler ..ist schon vorhanden .. quitiert wird. Daher eben die "umständliche, aber fehlerfreie Variante.
Datum in eine Variable zu packen finde ich gut und werde ich machen. Sieht besser aus da gebe ich dir recht.
Danke für die Tips
Cassadi
Ich würde gerne die Welt verbessern, doch Gott gibt mir den Quellcode nicht.
Märchenbasar - Tritt ein und lasse dich verzaubern!
Märchenbasar - Tritt ein und lasse dich verzaubern!
-
- Beiträge: 260
- Registriert: 04.12.2006 11:37:59
Hallo,
Also ich würde das noch einmal ausprobieren - dadurch wird Dein Skript kürzer, übersichtlicher und du kannst Dir zwei unnötige Mails sparen.
MfG
Bei mkdir -p kann doch nur dann ein Fehler auftreten, wenn die Person oder das Skript nicht die entsprechenden Berechtigungen hat. Ansonsten wird das Verzeichnis erstellt.Zeile 13 -34 habe ich gemacht damit eben das Verzeichniss angelegt wird wenn es nicht vorhanden ist. Die 2. Abfrage dient dazu ob es wirklich angelegt wurde. Kann ja auch nen Fehler auftreten.
mkdir -p sollte keine Fehlermeldung erzeugen, wenn das Verzeichnis schon existiert.Mit mkdir -p kam ich beim Rotateverzeichniss ins Schleudern, weil er ja damit das nach dem ersten Rotate erzeugte rotate nchmal versuchen würde anzulegen, was mit Fehler ..ist schon vorhanden .. quitiert wird.
Also ich würde das noch einmal ausprobieren - dadurch wird Dein Skript kürzer, übersichtlicher und du kannst Dir zwei unnötige Mails sparen.
MfG
- Cassadi
- Beiträge: 135
- Registriert: 19.03.2005 12:58:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Hiho Cologne4711
Ja ich habe es nochmal getestet und das ganze geht doch ohne Fehlermeldung. War wohl irgendwo nen Zeichen vergessen oder wie auch immer. Ich konnte nun ganze 20 Zeilen einsparen. Sicher noch irgendwo Verbesserungspotential.
Hier mal die Neufassung:
http://nopaste.debianforum.de/7303
LG
Cassadi
Ja ich habe es nochmal getestet und das ganze geht doch ohne Fehlermeldung. War wohl irgendwo nen Zeichen vergessen oder wie auch immer. Ich konnte nun ganze 20 Zeilen einsparen. Sicher noch irgendwo Verbesserungspotential.
Hier mal die Neufassung:
http://nopaste.debianforum.de/7303
LG
Cassadi
Ich würde gerne die Welt verbessern, doch Gott gibt mir den Quellcode nicht.
Märchenbasar - Tritt ein und lasse dich verzaubern!
Märchenbasar - Tritt ein und lasse dich verzaubern!