[gelöst] Backup der FBF Konfig automatisieren

meimi039

Mitglied
Mitglied seit
7 Jun 2005
Beiträge
323
Punkte für Reaktionen
0
Punkte
16
Hallo Leute!

Ich würde gerne per cron einen Export der Fritzbox-Konfig machen und per ftpput von der Box schaffen. Will sagen: Ich möchte bei einem Restore das ganze über das normale Webinterface wieder auf die Box hochladen können.

Hat jemand Ideen?
 
Zuletzt bearbeitet:
Um das wieder übers Webinterface hochzuladen brauchst du einen Export vom Webinterface. Wie du den jetzt auf der Box selbst machen willst, weiß ich nicht. Evenutell geht das mit einer erweiterten wget-Version?
Hier gibts ein paar Beispiele.

Der Rest wäre ja nur ein einfaches Skript...

MfG Oliver
 
Seiten per wget zu holen ist nicht wirkllich das Problem - aber die Übergabe des Kennwortes hab ich nicht wirklich im Griff...
Kannst Du mich da noch etwas detaillierter unterstützen...?
 
Wäre es für dich akzeptabel wenn du den Restore über das dsmod-Webinterface machen könntest?
kriegaex hat ein .cgi geschrieben, dass den Inhalt von /var/flash in eine Datei sichert und bei Bedarf wiederherstellt.
Das könnte man für deinen Bedarf noch um ein Skript für den cron erweitern.

MfG Oliver
 
Na das wäre doch perfekt! Es reicht mir auch völlig zu wissen, welche Dateien beim Backup der Box überhaupt gesichert werden. Zur Not nehme ich diese einfach in meine crontab mit auf. Die sieht derzeit so aus...:

Code:
0   4  *  *  0  cat /var/flash/ds_mod | ftpput -u user -p passwd myserver /fbfs/7170_4/ds_mod -
# 10  4  *  *  0  tar -cvf - /var/tmp/usbstick1/ | ftpput -u user -p passwd myserver /fbfs/7170_4/usbstick1.tar -
#

Ich hatte einfach nur gedacht, das originale Webinterface ruft einfach nur ein Script oder Binary auf, welches das File erzeugt. Das hätte ich dann einfach aus der Box geschafft.
Ansonsten schafft man einfach alles unter /var/flash raus...

Wäre das der richtig Weg?
 
Das Skript wird so aussehen:
Code:
# Set working dir so tar can use relative path names
cd /var/tmp > /dev/null 2>&1
# Create empty temp-dir for backup
export BACKUP_DIR='var_flash' > /dev/null 2>&1
rm -rf $BACKUP_DIR > /dev/null 2>&1
mkdir $BACKUP_DIR > /dev/null 2>&1
# Create temporary copies of those character streams in /var/flash
for file in $(ls /var/flash); do
cat /var/flash/$file > $BACKUP_DIR/$file 2> /dev/null
done
# Create backup and send it to client via stdout
tar cz $BACKUP_DIR/ 2> /dev/null
# Clean up
rm -rf $BACKUP_DIR > /dev/null 2>&1
Es werden also alle Dateien unter /var/flash nach var_flash.tar.gz (mit Verzeichnis var_flash) gesichert. Wenn du das genauso machst, dann kannst du es mit dem Backup-cgi auf die Box zurückspielen.

MfG Oliver
 
Ah! Kuhl!
Wenn in einem Backup eh nichts anderes drin ist... dann isses ja leicht zu verscripten...

Danke für den schnellen Support!

Ich habe nun ein Script erstellt, welches ich über cron aufrufe:

Code:
#!/bin/sh
##############################################################################
##############################################################################
##                                                                          ##
##                                                                          ##
##  fbfbackup server user passwd filename                                   ##
##                                                                          ##
##  Legt Kopie von /var/flash verschlüsselt auf ftp-server                  ##
##                                                                          ##
##############################################################################
##############################################################################

BACKUP_DIR='var_flash'
SERVER=$1
USER=$2
PASSWD=$3
FILENAME=$4
# if "$FILENAME" == "" then
# FILENAME=`cat /var/flash/ar7.cfg | grep 'From = ' | sed 's/.*.From = \"\\\"//;s/\\\" .*.//'`.tar.gz
# fi

# Kein Server eingegeben dann Schluß
[ ! $SERVER ] && exit

##############################################################################
cd /var/tmp
mkdir $BACKUP_DIR

for file in $(ls /var/flash); do
cat /var/flash/$file > $BACKUP_DIR/$file 2> /dev/null
done

tar -czf - $BACKUP_DIR/ | 
# Passwords dont belong to the Internet!
# rot13 corrupts the zip-file. Do this again to recover.
sed 'y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/' |
ftpput -u $USER -p $PASSWD $SERVER /fbf/$FILENAME -

rm -rf $BACKUP_DIR > /dev/null 2>&1

Dieses Script erzeugt auf einem FTP-Server ein File mit einem Dateinamen, der (wenn man es will) aus dem Namen aus dem Push-Service hervorgeht. Muß man nur auskommentieren. Hier benutze ich das Feld "Absendername". Aus diesem würde dann "Absendername.tar.gz"
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,530
Beiträge
2,293,660
Mitglieder
378,035
Neuestes Mitglied
sr0211