![](https://seccdn.libravatar.org/avatar/7b33cb1e776e35b87edb8ef09f0c888f.jpg?s=120&d=mm&r=g)
Hallo, On Sat, 17 Aug 2002, Thorsten Kettner wrote:
Am Donnerstag, 15. August 2002 21:22 schrieb David Haller: [bitte lass die Vorredner, die du zitierst "leben", auch wenn du das bist! Ich ergaenze:
[Thorsten Kettner wrote:] ]
#!/bin/sh # Erstellen des Backups
find /home/thor/Documents/ -mount -depth | afio -ovZ /data/BackupDatum1.afio
ist das 'mount' gewollt? Ich habe z.B. einige Sache aus home ausgelagert, die ich aber bei ner Sicherung haben wollte... Das aber nur nebenbei.
ich fragte mal nach einer Backupmöglichkeit, zum Archivieren, dann wurde mir dies angeboten..... inklusive -mount.......
Und? Schon in 'man find' nachgelesen was das -mount macht?
hm, ich stricke es mir bei Bedarf zurecht, im Moment erfüllt es so seinen Zweck. Außerdem ist dies ein Teilskript, die anderen Sicherungsbereiche werde ich noch einpflegen.
Ok. Nur generell: uebernimm nix, was du nicht verstehst...
# Erstellen eines Orders
md BackupDatum1
Genau hier jetzt meine "Wünsche". Ich möchte BackupDatum1 sichern, also müsste hinter Backup im Namen zum Beispiel für heute der 150822, daraus folgt der Dateiname Backup150802. Diese Datei soll unter /data in einen zu erstellenden Order, in diesem Fall, /data/Backup150802, gesichert gewerden.
Wozu ein Ordner?
Weil in diesen Ordner auch noch die anderen Teilsicherungen wichtiger Bereiche kommen, Namen bekommen sie alle zutreffende, der Ordner als Sammelstelle.
Ahso. Naja, das laesst sich leicht ergaenzen:
==== #!/bin/sh AFIO_OPTS="-ovZ" DOC_DIR="/home/thor/Documents" BACKUP_DIR="/data"
BACKUP_DIR="/data/Backups/Backup-`date '+%Y-%m-%d'`"
BACKUP_FILE="${BACKUP_DIR}/Backup-`date '+%Y-%m-%d'`"
find "${DOC_DIR}" -xdev -depth | afio $AFIO_OPTS "${BACKUP_FILE}" ====
Wobei bei nun 2 mal 'date' evtl. eine Variable angebracht ist: ==== DATE="`date '+%Y-%m-%d'`" BACKUP_DIR="/data/Backups/Backup-${DATE}" test -d "${BACKUP_DIR}" || mkdir -p "${BACKUP_DIR}" BACKUP_FILE="${BACKUP_DIR}/Backup-${DATE}" ==== Die Bezeichnungen sind natuerlich relativ sinnfrei, bitte nach Moeglichkeit verbessern, insbesondere das von "BACKUP_FILE" (eben je nach dem _was_ du sicherst, bei obigen waere z.B.: BACKUP_FILE="${BACKUP_DIR}/thor_Documents-${DATE}" ein besserer Name. Achso: ich quote und verwende '${}' statt '$' mit Bedacht :)
Eleganter ;( Danke! Ich gleiche es mal an meine Bedürfnisse an und schaue mir dann die Ergebnisse an.
*g* Versuche v.a. zu _verstehen_ was da ablaeuft. Und eine Warnung: Ich kenne afio so gut wie nicht -- sieh dir also bitte 'man afio' genau an und verwende die Optionen, die richtig fuer dich sind! (leicht einstellbar dank/in AFIO_OPTS).
Ich wuerde allerdings evtl. /data/Backups statt /data verwenden ;)
Ja....
s.o. :) ggfs., wenn sich deine scripte mal ein wenig entwickelt haben, were evtl. eine gute Idee, AFIO_OPTS und evtl. anderes in eine gesonderte Datei auszulagern (analog zu den (alten? [1]) initscripten und rc.config unter SuSE). z.B.: [Achtung: das ist nur ein ungetesteter "Ansatz", bitte erst verstehen was da wie und warum gemacht werden soll und ggfs. nachfragen, bevor du das auch nur versuchst umzusetzen oder auch nur zu testen!] ==== /etc/backup.opts ==== FIND="/usr/bin/find" AFIO="/usr/bin/afio" AFIO_OPTS="-vZ" DATE="`date '+%Y-%m-%d'`" BACKUP_DIR="/data/Backups/Backup-${DATE}" test -d "${BACKUP_DIR}" || mkdir -p "${BACKUP_DIR}" ==== ==== bin/backup-docs-thor.sh ==== #!/bin/bash source /etc/backup.opts DOC_DIR="/home/thor/Documents" BACKUP_FILE="${BACKUP_DIR}/Documents_thor-${DATE}" $FIND "${DOC_DIR}" -xdev -depth | $AFIO -o $AFIO_OPTS "${BACKUP_FILE}" ==== ==== bin/restore-docs-thor.sh ==== #!/bin/bash source /etc/backup.opts DOC_DIR="/home/thor/Documents" ### HIER FEHLT JETZT VIEL!!! (z.B. ne Abfrage welches der vorhandenen ### Backups wiederhergestellt werden soll, usw. etc. pp.... $AFIO -i $AFIO_OPTS "${BACKUP_FILE}" ==== === bin/backup-foo.sh ==== #!/bin/bash source /etc/backup.opts DOC_DIR="/foo" BACKUP_FILE="${BACKUP_DIR}/foo-${DATE}" $FIND "${DOC_DIR}" -xdev -depth | $AFIO -o $AFIO_OPTS "${BACKUP_FILE}" ==== Achte bitte darauf, dass/wie ich das '-o' bzw. '-i' von den anderen Optionen fuer Afio getrennt habe!!! Und das restore-fragment soll nur die Grundidee des "Auslagerns" gewisser Optionen/Variablen illustrieren! Denn AFAIK muss/sollte man beim Restore die gleichen Optionen verwenden wie beim Backup -- aber wie gesagt, ich kenne afio nur sehr oberflaechlich... Hier deutet sich aber natuerlich schon eine weitere Generalisierung an: das einzige was sich wirklich noch aendert ist a) das zu sichernde Verzeichnis und b) der Name des Backups, den man aber aus dem Verzeichnisnamen konstruieren koennte (sed 's@/@_@g')... Die logisch folgenden scripte wuerden nun also schlicht nur noch einen Parameter auszuwerten haben... ==== bin/backup.sh #!/bin/bash ### Hier fehlt ein Kommentar source /etc/backup.opts ### Hier gehoert ein USAGE und anderes hin cd "$1" ## Hier fehlen eine Optionen-Auswertung und diverse Tests... BACK_DIR=`pwd -P` cd "$BACK_DIR" BACK_F=`echo "$BACK_DIR" | sed 's/\//_/g'` BACKUP_FILE="${BACKUP_DIR}/${BACK_F}-${DATE}" ## Hier fehlen diverse Tests... $FIND "${DOC_DIR}" -xdev -depth | $AFIO -o $AFIO_OPTS "${BACKUP_FILE}" ==== Und natuerlich liesse sich hier auch gleich noch das Backup-Programm aendern: statt "$AFIO $AFIO_OPTS" z.B.: $BACKUP_CMD wobei dann z.B. in /etc/backup.opts ein 'BACKUP_CMD="$AFIO -o $AFIO_OPTS"' stehen koennte (oder ein '..="$TAR -c $TAR_OPTS"' oder sonstwas)... Und analog dann: 'RESTORE_CMD="$AFIO -i $AFIO_OPTS"' bzw. '..="$TAR -x $TAR_OPTS"'. Zweck der "Aktion" waere jedenfalls, dass Aenderungen nur an einer Stelle (im obigen Beispiel eben in /etc/backup.opts) vorzunehmen waeren... Wie gesagt: ich will hier nur Anregungen geben! Und ALLES ist ungetestet! source std-disclaimer.sh -dnh [1] ich verwende hier ne SuSE 6.2... -- Selbstverstaendlich loest Alkohol Probleme. Zu dumm, dass diese nach dem Verdampfen des Loesungsmittels wieder auskristallisieren. -- Ayahuasca in dasr