hallo,
ich bin gerade dabei nenn kleines shell skript zu basteln...
ich habe nicht viel ahnung von shell skripting aber durch das tolle learn by doing erfahren hab ich gestern doch nenn kleines skript zustande bekommen
Hier erstmal der Code zur Shell.. anschließend die fragen
Das Skript wird wiefolgt aufgerufen
backup_name.sh part/full/help
jenachdem, welcher parameter bzw. argument hinten dran steht ruft er halt die entsprechende funktion auf.. wenn nichts angegeben wird, kommt die hilfe datei
#!/bin/bash
### Einstellungen ##
#Ausgabe des Datums Jahr-Monat-Tag
DATUM="$(date +%Y-%m-%d-)"
#Ausgabe der Kalenderwoche
KW="$(date +%W-)"
#Ausgabe des gekürzten Wochentages
TAG="$(date +%a-)"
# Zeitformat einstellen
ZEIT="$(date +%H:%M)"
# Pfad zum Backupverzeichnis
# !!!Kein / am Anfang des Pfades!!!
DESTINATION="mnt/LSPRO/backup/"
# Verzeichnis(se) welche(s) gesichert werden soll(en)
# !!Kein / am anfang des Pfades angeben!!
SOURCE="home"
part_backup() {
#Konfiguration für das full Backup
# Ersetzt die Variable ${PART}
PART="part-"
BACKUPDIR="${DESTINATION}${DATUM}KW${KW}${TAG}${PART}${ZEIT}"
### Wechsel in root damit die Pfade stimmen ##
cd /
# Ausführen des Kopierbefehls
# -r = rekursiv
# -u = Überprüfung ob quelldateien neuer sind als dateien im Zielverzeichnis
cp ${SOURCE} ${BACKUPDIR} -ru
}
full_backup() {
#Konfiguration für das full Backup
# Ersetzt die Variable ${PART}
PART="full-"
BACKUPDIR="${DESTINATION}${DATUM}KW${KW}${TAG}${PART}${ZEIT}"
### Wechsel in root damit die Pfade stimmen ##
cd /
# Ausführen des Kopierbefehls
# -r = rekursiv
cp ${SOURCE} ${BACKUPDIR} -r
}
help_file() {
### Hilfe ##
echo "full führt ein komplettes Backup durch"
echo "part Überprüft Quelldateien und Backupdateien und kopiert nur neue Quelldateien"
}
#Argument+Funktionszusammenschluss für Befehlszeile
case "$1" in
full)
full_backup
;;
part)
part_backup
;;
*)
help_file
;;
esac
Nun zu meinem Problem...
Wenn ich "backup.sh part" aufrufe macht er jedes mal ein full backup, obwohl er durch den parameter -u eigentlich die bisher gebackuppten dateien überprüfen sollte und danach nur neuere quelldateien kopieren sollte...
dies macht er aber aufs verrecken nicht
meine Vermutung
Wenn er ein Backup anlegt ist der name des Hauptordners
2008-09-25-KW39-Mon-16:36-part <-- bei teilbackup
2008-09-25-KW39-Mon-16:36-full <-- bei fullbackup
Wobei die zeit jetzt nur testweise angehangen wurde um nicht immer das datum umzustellen...
Wenn ich jetzt also einmal "backup.sh full" aufrufe und danach eine Datei anlege und "backup.sh part" aufrufe sollte er theo. das Ziel mit der Quelle überprüfen ob es die datei gibt, wenn ja, ob sie neuer ist oder nicht...
leider macht er das nicht.
Ich denke er greift nicht auf die unterordner zu... aber ich weiss nicht warum...
Habt ihr vielleicht einen Rat für mich??
bedanke mich schonmal im vorraus.
Gruss und schönen Freitag
Marcus