Benutzer-Werkzeuge

Webseiten-Werkzeuge


edv:soft:jk-eigensoft:dir_backup_ts

dir_backup_ts

Das kleine Tool besteht aus zwei Dateien: das Skript selbst (dir_backup_ts.sh) und die Konfigurationsdatei (der Name kann beliebig sein) mit den Parametern. Es können glechzeitig mehrere Konfigurationsdateien existieren - damit kann man gleichzeitig (und durch z.B. Cron automatisiert) mehrere Verzeichnisse sichern.

:!: Wichtiger Hinweis! Dieses Skript enthält eine prinzipielle Sicherheitslücke (die Konfigurationsdatei wird als Untershell ausgeführt) und darf deshalb nur für rein lokale Backups und zwar nur von nicht privilegierten Usern verwendet werden!
Ein Angreifer, der Schreibrechte auf die Konfigurationsdatei verschafft, kann beliebige Befehle im Kontext des aufrufenden Users einschleusen und ausführen lassen.
Ich habe es vor, dies in Zukunft so zu ändern, daß die Parameter aus der Konfigurationsdateien gelesen und nicht ausgeführt werden. Bis dahin aber bitte diesen Hinweis unbedingt beachten.

FIXME ToDo: Die eMail um die Größe und Hostname des Backups erweitern. (Teils erledigt.)

  • Die backup-Kennung wird dann im Betreff der eMail erscheinen.
  • Die eMail soll volständige Angaben über das Backup enthalten: backup-Kennung, Timestamps (Anfang/Ende), Status (Erfolg/fehlgeschlagen), Größe, Filename und Speicherort (inklusive Hostname) des Backups, source-Verzeichnis des Backups.

Quelltext:

dir_backup_ts.sh: Download als GZip - das ksh-Skript (MD5 dir_backup_ts.sh.gz = 47c02f5db061cdf4270b37b608a0f733)

dir_backup_ts.cfg (Beispiel): Download als GZip - das Config-File (MD5 dir_backup_ts.cfg.gz = 8e6634e62c139d3b0843e2bfd190ca67)

Aufruf (Beispiel):

SUN:/home/developer/wa/prj/dir_backup_ts/ dir_backup_ts.sh dir_backup_ts.cfg

dir_backup_ts.sh: Version 0.2 (17.11.2009), J.Kreick (noreply@kreick.de)

Konfigurationsfile [dir_backup_ts.cfg] wird geladen...
Folgende Angaben wurden ais dem Konfigurationsfile gelesen:
Pfad zum Quell-Verzeichnis:          DIR_SOURCE             = [/home/developer/wa/prj/dir_backup_ts/source-dir]
Pfad zum Ziel-Verzeichnis:           DIR_BACKUP             = [/home/developer/wa/prj/dir_backup_ts/target-dir]
Base-Name des Backup-Files:          BACKUP_BASE_NAME       = [ein-test-backup]
Minimale Anzahl von Backups:         BACKUP_FILES_COUNT_MIN = [3]
Minimale Aufbewahrungszeit in Tagen: BCKP_FILES_AGE_MIN     = [3]
Status-eMail an:                     EMAIL_TO               = [adresse@domain.tld]
2009-11-17 11-26-20: Inhalt des Verzeichnises [/home/developer/wa/prj/dir_backup_ts/source-dir] wird unter dem Namen [ein-test-backup.2009-11-17_11-26-20.tar.gz] im Verzeichnis [/home/developer/wa/prj/dir_backup_ts/target-dir] gesichert...
a /home/developer/wa/prj/dir_backup_ts/source-dir/ 0K
a /home/developer/wa/prj/dir_backup_ts/source-dir/file1.txt 1K
a /home/developer/wa/prj/dir_backup_ts/source-dir/file2.txt 1K
2009-11-17 11-26-20: Backup [/home/developer/wa/prj/dir_backup_ts/target-dir/ein-test-backup.2009-11-17_11-26-20.tar.gz] wurde erfolgreich angelegt.

2009-11-17 11-26-20: Veraltete Backups im Verzeichnis [/home/developer/wa/prj/dir_backup_ts/target-dir] werden entfernt...
2009-11-17 11-26-20: Das Verzeichnis [/home/developer/wa/prj/dir_backup_ts/target-dir] wurde erfolgreich aufgeraeumt.
Die eMail wird an [adresse@domain.tld] gesendet...
done
SUN:/home/developer/wa/prj/dir_backup_ts/

Nach dem das Skript fertig ist, kommt folgende eMail:

Von: developer@developerhost
An:  adresse@domain.tld

Betreff: dir_backup_ts.sh: Status of [Test_Backup]: SUCCESS

[Test_Backup]: SUCCESS

Begin: 2009-11-17 11-26-20
Ende:  2009-11-17 11-26-20

SourceDir:  [/home/developer/wa/prj/dir_backup_ts/source-dir]
TargetDir:  [/home/developer/wa/prj/dir_backup_ts/target-dir]
TargetFile: [ein-test-backup.2009-11-17_11-26-20.tar.gz]

Message: Backup [/home/developer/wa/prj/dir_backup_ts/target-dir/ein-test-backup.2009-11-17_11-26-20.tar.gz] wurde erfolgreich angelegt.

EOF

Viel Spaß!


Stand: 17.11.2009 - In Arbeit
: Jürgen Kreick

EOF

edv/soft/jk-eigensoft/dir_backup_ts.txt · Zuletzt geändert: 2020/01/11 01:23 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki