.titleBar { margin-bottom: 5px!important; }

[gelöst] Backup der FBF Konfig automatisieren

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von meimi039, 1 Feb. 2007.

  1. meimi039

    meimi039 Mitglied

    Registriert seit:
    7 Juni 2005
    Beiträge:
    323
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Beruf:
    Senior IT-Security Engineer
    #1 meimi039, 1 Feb. 2007
    Zuletzt bearbeitet: 6 Feb. 2007
    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?
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,761
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  3. meimi039

    meimi039 Mitglied

    Registriert seit:
    7 Juni 2005
    Beiträge:
    323
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Beruf:
    Senior IT-Security Engineer
    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...?
     
  4. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,761
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  5. meimi039

    meimi039 Mitglied

    Registriert seit:
    7 Juni 2005
    Beiträge:
    323
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Beruf:
    Senior IT-Security Engineer
    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?
     
  6. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,761
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  7. meimi039

    meimi039 Mitglied

    Registriert seit:
    7 Juni 2005
    Beiträge:
    323
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Beruf:
    Senior IT-Security Engineer
    #7 meimi039, 6 Feb. 2007
    Zuletzt bearbeitet: 9 Feb. 2007
    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"