Edit:
Script ist fertig
Vorraussetzung ist callmonitor mit Aktionen - das erledigt nämlich den Login
Es funktioniert so - ob es unbedingt die beste Lösung ist sei mal dahingestellt
Sollte der Login am Webif scheitern oder die Export-Datei nicht den "richtigen" Inhalt enthalten wird eine E-Mail verschickt.
Das Script liesst den Absendernamen aus den Pushservice Einstellungen aus (aber nur den Absender, das ist in meinem Fall so gewollt) und verwendet den als Absender, der Rest ist von Hand konfiguriert.
Das Script kann als ersten Parameter einen Ziel-Dateinamen erhalten (mit existierendem Pfad) - wenn keiner angegeben wird dann wird die Datei "fritzbox.export" im Verzeichnis erstellt in dem auch das Script liegt. Alternativ kann man auch über BACKUPBASE fest einen anderen Pfad einstellen.
Der Ursprungstext:
Hi,
Folgende Situation: Die 7270 bei meiner Schwester hatte sich am Samstag verabschiedet, also schnell ne 7390 holen lassen und aus der Ferne eingerichtet, da ich nur ein var_flash Backup hatte wo ja nachher Anmeldepasswort, Internetzugangsdaten etc... nicht mehr stimmen. Ich weiß, dass ich vor "Ewigkeiten" mal ein Script hatte, dass auch nen Export übers Webif gemacht hat. Das war aber noch aus Zeiten vor der Anmeldung mit Passwort und der Notwendigkeit ein Passwort auf die Export Datei zu setzen (bzw jetzt sollte man es ja damit man die Datei auch auf einer anderen Box importieren kann)... Wenn ich mich recht entsinne hat das ein wget gemacht auf die URL die dann das Export-File rausgespuckt hat.
Gibts sowas ähnliches auch noch jetzt? Die Freetz sachen hab ich aus dem Backup von var_flash einfach wieder hinbekommen - aber son "Übernahme" Export ist natürlich auch eine nette Sache...
Gruß
Peter
Script ist fertig
Vorraussetzung ist callmonitor mit Aktionen - das erledigt nämlich den Login
Es funktioniert so - ob es unbedingt die beste Lösung ist sei mal dahingestellt
Sollte der Login am Webif scheitern oder die Export-Datei nicht den "richtigen" Inhalt enthalten wird eine E-Mail verschickt.
Das Script liesst den Absendernamen aus den Pushservice Einstellungen aus (aber nur den Absender, das ist in meinem Fall so gewollt) und verwendet den als Absender, der Rest ist von Hand konfiguriert.
Das Script kann als ersten Parameter einen Ziel-Dateinamen erhalten (mit existierendem Pfad) - wenn keiner angegeben wird dann wird die Datei "fritzbox.export" im Verzeichnis erstellt in dem auch das Script liegt. Alternativ kann man auch über BACKUPBASE fest einen anderen Pfad einstellen.
Code:
#!/bin/sh
. /etc/freetz_info.cfg
. /var/env.cache
EXPORT_PASSWORD=test
MAIL_BETREFF="Automatischer Export gescheitert"
MAIL_ABSENDER=`allcfgconv -C "ar7" -c -e -o - | sed -ne '/^'"emailnotify"'[[:space:]]*{/,/^}/p' | grep From | sed -e 's/^[[:space:]]*From \= "//g' -e 's/\";//g' -e 's/\\\"//g'`
MAIL_EMPFAENGER="[email protected]"
MAIL_SERVER="192.168.0.1"
MAIL_BENUTZERNAME=""
MAIL_PASSWORD=""
FEHLERDATEI="/var/tmp/exportfehler.txt"
CURRENTDIR=$(cd "$(dirname "${0}")" && pwd) # Ordner in dem das Script liegt
#BACKUPBASE="/var/media/ftp/uStor01" # Ordner in dem die Dateien liegen sollen
BACKUPBASE=$CURRENTDIR # Ordner in dem die Dateien liegen sollen
if [ "$1" != "" ];
then
EXPORTDATEI=$1
else
EXPORTDATEI="${BACKUPBASE}/fritzbox.export"
fi
[ -z "$APPLET" ] && exec /usr/lib/callmonitor/controller "$0" "$@"
require webui
# set -x
set "$@" --
if webui_login; then
LOGIN_OK=OK
else
echo "Login fehlgeschlagen" > $FEHLERDATEI
mailer \
-s "$MAIL_BETREFF" \
-f "$MAIL_ABSENDER" \
-t "$MAIL_EMPFAENGER" \
-m "$MAIL_SERVER" \
-a "$MAIL_BENUTZERNAME" \
-w "$MAIL_PASSWORD" \
-i $FEHLERDATEI
rm -f $FEHLERDATEI
exit 1
fi
export CONTENT_TYPE='multipart/form-data; boundary=---------------------------29790258764751'
export HTTP_HOST='169.254.255.255'
export REMOTE_ADDR='169.254.255.255'
export REQUEST_METHOD='POST'
STDINEXPORT="-----------------------------29790258764751
Content-Disposition: form-data; name=\"sid\"
$WEBUI_SID
-----------------------------29790258764751
Content-Disposition: form-data; name=\"ImportExportPassword\"
$EXPORT_PASSWORD
-----------------------------29790258764751
Content-Disposition: form-data; name=\"ConfigExport\"
-----------------------------29790258764751--
"
echo "$STDINEXPORT" | /usr/www/all/cgi-bin/firmwarecfg > $EXPORTDATEI
sed -i -e 1D -e 2D -e 3D $EXPORTDATEI
webui_logout
KONTROLLE=`head -n 8 $EXPORTDATEI | tail -n 1`
if [ "$KONTROLLE" != "**** CFGFILE:ar7.cfg" ]
then
echo "Exportdatei scheint ungültig zu sein" > $FEHLERDATEI
mailer \
-s "$MAIL_BETREFF" \
-f "$MAIL_ABSENDER" \
-t "$MAIL_EMPFAENGER" \
-m "$MAIL_SERVER" \
-a "$MAIL_BENUTZERNAME" \
-w "$MAIL_PASSWORD" \
-i $FEHLERDATEI
rm -f $FEHLERDATEI
exit 1
fi
Der Ursprungstext:
Hi,
Folgende Situation: Die 7270 bei meiner Schwester hatte sich am Samstag verabschiedet, also schnell ne 7390 holen lassen und aus der Ferne eingerichtet, da ich nur ein var_flash Backup hatte wo ja nachher Anmeldepasswort, Internetzugangsdaten etc... nicht mehr stimmen. Ich weiß, dass ich vor "Ewigkeiten" mal ein Script hatte, dass auch nen Export übers Webif gemacht hat. Das war aber noch aus Zeiten vor der Anmeldung mit Passwort und der Notwendigkeit ein Passwort auf die Export Datei zu setzen (bzw jetzt sollte man es ja damit man die Datei auch auf einer anderen Box importieren kann)... Wenn ich mich recht entsinne hat das ein wget gemacht auf die URL die dann das Export-File rausgespuckt hat.
Gibts sowas ähnliches auch noch jetzt? Die Freetz sachen hab ich aus dem Backup von var_flash einfach wieder hinbekommen - aber son "Übernahme" Export ist natürlich auch eine nette Sache...
Gruß
Peter
Zuletzt bearbeitet: