[Gelöst] ip per mail nach reboot

matze1985

Aktives Mitglied
Mitglied seit
17 Feb 2007
Beiträge
1,537
Punkte für Reaktionen
0
Punkte
0
Hey Leute

ich will mir meine IP per Mail nach einem Reboot schicken lassen.
Ich denke ein script ist dafür am besten geeignet oder ? und dieses dann wahrscheinlich aus der rc.custom oder debug.cfg starten.
Leider kenne ich mich nicht so gut mit scripten aus.
ich hatte bei dem ds29-14.2 (vielleicht auch 3) das es auch ein neues scipt gibt um die ip zu erfahren.
Könnte mit jemand vielleicht ein bsp für ein script geben?
matze
 
Zuletzt bearbeitet:
Die IP kannst du über die Konsole rauskriegen. Siehe hier.

Vor dem Start der debug.cfg auch ein wenig warten, bis die Inet Verbindung steht. Die Mail kannst du mit /sbin/mailer verschicken.
 
also das script habe ich weidergefunden und Zwar hier.
kriegaex schrieb:
External IP can now be determined without calling external servers: Shell script /bin/get_ip prints external IP to stdout, giving the user a choice between three different methods:
Code:

-w, --webcm - webcm CGI handler method [default]
-d, --dsld - showdsldstat method (use only with kernel 2.6 firmwares)
-e, --extquery - external site query method (ask whatismyip.org)
jetzt muss ich nur noch ein schönes script zusammenbauen, kann mir da jemand irgendwie helfen?
 
Orientiere Dich an den Beispielen ab hier (mehrere Varianten, bitte weiterblättern). Der dort verwendete Aufruf, um die IP zu erfahren, entspricht --extquery aud dem späteren get_ip, Du kannst das auch ersetzen, da die Methode am langsamsten ist - dafür funktioniert sie auch im ATA-Modus, falls Du den verwendest. Die weiteren Varianten weiter unten im Thread machen das Ganze zeitgesteuert in x-Minuten-Intervallen oder um eine bestimmte Uhrzeit.
 
vielen Dank für die Hilfe!
ich habe es jetzt etwas anders gemacht, damit nicht soviel in der debug.cfg steht.
Ich habe die datei /var/tmp/flash/ipchanged mit nano erstellt mit dem inhalt:
Code:
#!/bin/sh
if [ "$1" = "online" ] ; then
  uptime > /var/tmp/uptime.txt
  mailer -s "New IP for Fritzbox: `/usr/bin/get_ip`" -f "[email protected]" -t "[email protected]" -m "mail.bsp.de" -i /var/tmp/uptime.txt
  rm -f /var/tmp/uptime.txt
fi

und dann in die /var/flash/debug.cfg mit nnano:
Code:
multid -s
multid -S /var/tmp/flash/ipchanged
eingetragen
 
Zuletzt bearbeitet:
Und wie erzeugst Du nach dem Booten Dein Batch-Skript? Das muß ja auch irgendwoher kommen. Davon abgesehen, nimm /var/tmp/onlinechanged, dann brauchst Du keinen Namen bei multid anzugeben.
 
wie gesagt, ich habe es unter /var/tmp/flash/ erstellt und dann mit modsave gespeichert, dann brauche ich es ja nicht mehr zu erzeugen oder? zumindest klappt es bei mir so bis jetzt.
Damit muss ich dann zwar die datei per multid -S /var/tmp/flash/ipchanged angeben, aber es gibt ja schlimmeres.

edit: kann es zu problemen kommen, weil der mod zu spät entpackt wird und die datei dann noch nicht existiert nach einem reboot?
(wie gesagt bis jetzt passt es aber bei mir)
 
Zuletzt bearbeitet:
Den Teil "flash" habe ich in Deinem Pfad überlesen, nur /var/tmp wahrgenommen. Davon abgesehen, sparst Du keinen Platz im TFFS, Du verlagerst das Skript ja nur von einer in die andere Datei: /var/flash/debug.cfg -> /var/flash/ds_mod. Aber das im Skript sichtbare Erzeugen sparst Du Dir, das ist wahr. Zu Problemen könnte es theoretisch kommen, insofern als der Server das Skript suchen, aber nicht finden könnte und deswegen evtl. die erste Benachrichtigung ausbleiben könnte, falls der Server das vor dem Laden des DS-Mod aufrufen würde. Das mag selten oder nie vorkommen, aber es wäre ein Kandidat für eine klassische Race Condition, an die man irgendwann nicht mehr denkt, wenn mal ein seltsamer Fehler auftritt. Bestenfalls kommt einfach keine Benachrichtigung, schlimmstenfalls steigt der Bootprozeß aus, je nachdem, wie sich multid verhält, wenn er das angegebene Skript nicht findet (vermutlich tolerant, aber probiert habe ich es nicht).

Solange Du zufrieden bist mit Deiner Lösung, laß sie so, es ist ja Deine Box. Ich packe jedenfalls nach /var/tmp/flash nur Sachen, von denen ich sicher bin, daß sie erst nach dem Laden von ds_mod gebraucht werden.
 
also wie gesagt, bis jetzt gibt es keine probleme.
Könnte ich es eigentlich nicht auch so machen, das ich einfach, wenn ich mein nächstes Image erstelle, das script z.b. unter ds26-15.1/root/usr/ipchanged speichern damit es dann auf der box, nach dem flashen natürlich, unter usr/ipchanged zu finden ist und halt die debug.cfg dann halt anpassen?
(Verziechnis ist jetzt nur ein bsp, würde woanders wahrscheinlich mehr sinn machen)
 
So ginge das auch. Aber vergiss nicht das Skript ausführbar zu machen (chmod +x ipchanged).

MfG Oliver
 
da hast du recht, vielen Dank für den tip

edit:
Also habe ein neues image erstellt und die Datei in dsmod/root/bin gespeichert, sodass sie dann auf der box unter bin zu finden ist.
debug.cfg verändert und alles super!
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.