Backupdate sh: Unterschied zwischen den Versionen
K |
Framp (Diskussion | Beiträge) (Kleine Korrekturen von K4m1K4tz3) |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
#!/bin/sh | #!/bin/sh | ||
# | # | ||
− | # Script zum | + | # Script zum Sichern eines beliebigen Verzeichnisses mit rsync. |
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks, | # Es werden mehrere Ordner angelegt, mithilfe von Hardlinks, | ||
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag). | # mit dem jeweils aktuellen Datum (backup_JahrMonatTag). | ||
− | # Die ältesten Ordner werden gelöscht | + | # Die ältesten Ordner werden gelöscht. |
# | # | ||
− | # Dieses | + | # Dieses Script kann durch einen Cron Job alle X Tage aufgerufen werden. |
# Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html | # Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html | ||
# oder hier: http://www.selflinux.org/selflinux/html/cron.html | # oder hier: http://www.selflinux.org/selflinux/html/cron.html | ||
− | # Bsp. für ein Backup welches jeden Tag um 24 Uhr gestartet wird: | + | # Bsp. für ein Backup, welches jeden Tag um 24 Uhr gestartet wird: |
# 00 24 */1 * * User /Ordner/mit/Script/backup.sh | # 00 24 */1 * * User /Ordner/mit/Script/backup.sh | ||
# | # | ||
Zeile 19: | Zeile 19: | ||
# mathiasrabe@web.de | # mathiasrabe@web.de | ||
# | # | ||
− | # Dieses Script steht unter der GPL. Es gelten daher die dort | + | # Dieses Script steht unter der GPL. Es gelten daher die dort |
# vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes. | # vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes. | ||
Zeile 26: | Zeile 26: | ||
# Wovon soll ein Backup gemacht werden? | # Wovon soll ein Backup gemacht werden? | ||
− | # Bsp wenn | + | # Bsp. wenn mehrere Ordner/Dateien kopiert werden sollen: |
# SOURCE_LOCATION="/home/USER/original/Ordner1 /home/USER/original/Ordner2"; | # SOURCE_LOCATION="/home/USER/original/Ordner1 /home/USER/original/Ordner2"; | ||
SOURCE_LOCATION=/home/master/backuptest/original; | SOURCE_LOCATION=/home/master/backuptest/original; | ||
Zeile 85: | Zeile 85: | ||
rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ; | rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ; | ||
</pre> | </pre> | ||
+ | <noinclude> | ||
+ | ---- | ||
+ | |||
+ | [[Backupprogramme|Zurück zu den Backupprogramme]]<br /> | ||
+ | [[Shellscripte|Zurück zur Shellscripteübersicht]] | ||
+ | [[Category:Security]][[Category:Backup]][[Kategorie:Scripte]] | ||
+ | [[Category:Scripte]] | ||
+ | </noinclude> |
Aktuelle Version vom 4. November 2007, 18:44 Uhr
#!/bin/sh # # Script zum Sichern eines beliebigen Verzeichnisses mit rsync. # Es werden mehrere Ordner angelegt, mithilfe von Hardlinks, # mit dem jeweils aktuellen Datum (backup_JahrMonatTag). # Die ältesten Ordner werden gelöscht. # # Dieses Script kann durch einen Cron Job alle X Tage aufgerufen werden. # Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html # oder hier: http://www.selflinux.org/selflinux/html/cron.html # Bsp. für ein Backup, welches jeden Tag um 24 Uhr gestartet wird: # 00 24 */1 * * User /Ordner/mit/Script/backup.sh # # Version: 1.0 # Zuletzt geändert am: 07.06.2007 # # Autor Mathias Rabe # mathiasrabe@web.de # # Dieses Script steht unter der GPL. Es gelten daher die dort # vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes. #--------------------------------Einstellungen---------------------------------- # Wovon soll ein Backup gemacht werden? # Bsp. wenn mehrere Ordner/Dateien kopiert werden sollen: # SOURCE_LOCATION="/home/USER/original/Ordner1 /home/USER/original/Ordner2"; SOURCE_LOCATION=/home/master/backuptest/original; # Wohin soll das Backup geschrieben werden? BACKUP_LOCATION=/home/master/backuptest/backup; # Wie viele Backups sollen maximal existieren? Achtung: zu der Anzahl kommt noch das neu hinzugefügte Backup! # Bsp: Wenn hier 3 eingetragen ist, sind höchstens 4 Ordner vorhanden. BACKUPS_UNTIL_ERASE=3; #---------------------------------Programm-------------------------------------- if ! test -d $BACKUP_LOCATION ; then echo "Backupverzeichnis $BACKUP_LOCATION existiert nicht"; exit 0; fi cd $BACKUP_LOCATION; DATE=$(date +"%Y%m%d"); # TODO: Nachfolgende Funktionen schmeißen noch Fehlermeldungen beim Programm ls, # wenn kein backup_* Ordner existiert. Die Funktionen werden anscheinend auch schon # am Anfang ausgeführt, obwohl sie erst später ausgeführt werden sollen. # Beeinträchtigt aber keineswegs die Funktioninalität! NEWEST_BACKUP() { VAR_NEWEST_BACKUP=$(ls -d $BACKUP_LOCATION/backup_* | tail --lines=1) ; return $? ; } ; OLDEST_BACKUP() { VAR_OLDEST_BACKUP=$(ls -rd $BACKUP_LOCATION/backup_* | tail --lines=1) ; return $? ; } ; FILECOUNT() { VAR_FILECOUNT=$(ls -d $BACKUP_LOCATION/backup_* | wc -w) ; return $? ; } ; if test -d $BACKUP_LOCATION/backup_$DATE ; then echo "Ein aktuelles Backup existiert bereits"; exit 0; fi; #älteste Ordner löschen, Anzahl wie viele Ordner vorhanden sein sollen bei BACKUPS_UNTIL_ERASE definieren! FILECOUNT; while [ $VAR_FILECOUNT -gt $BACKUPS_UNTIL_ERASE ] ; do OLDEST_BACKUP; rm -rfv $VAR_OLDEST_BACKUP ; FILECOUNT; done; #neues Backup erstellen: NEWEST_BACKUP; rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ;
Zurück zu den Backupprogramme
Zurück zur Shellscripteübersicht