Script - SendIPmail.sh
-
- Entwickler Team
- Beiträge: 2576
- Registriert: So 17. Apr 2011, 11:39
- Been thanked: 1 time
- Kontaktdaten:
Script - SendIPmail.sh
IPC ERWEITERUNG
Prüft anhand myip.ch oder checkip.dyndns.org die aktuelle Internet IP und verschickt eine Email sobald sich diese ändert
Unabhängig davon ob DynDNS eingerichtet ist oder nicht
Kann auch dazu dienen wenn man zb unterwegs is, die DynDNS ggf auch manuell aktuallisiern zu können fals der Router mal wieder spinnt...
wurde "damals" im DEB als IPC zusatz requestet...
Prüft anhand myip.ch oder checkip.dyndns.org die aktuelle Internet IP und verschickt eine Email sobald sich diese ändert
Unabhängig davon ob DynDNS eingerichtet ist oder nicht
Kann auch dazu dienen wenn man zb unterwegs is, die DynDNS ggf auch manuell aktuallisiern zu können fals der Router mal wieder spinnt...
wurde "damals" im DEB als IPC zusatz requestet...
- Dateianhänge
-
- sendipmail.sh.rar
- (1.41 KiB) 182-mal heruntergeladen
Du musst nicht kämpfen um zu siegen
Re: Script - SendIPmail.sh
Huhu,
funktioniert das noch ? Bekomme immer eine leere Mail wo nur AG steht ? was mache ich falsch?
Grüße
funktioniert das noch ? Bekomme immer eine leere Mail wo nur AG steht ? was mache ich falsch?
Grüße
-
- Entwickler Team
- Beiträge: 2576
- Registriert: So 17. Apr 2011, 11:39
- Been thanked: 1 time
- Kontaktdaten:
Re: Script - SendIPmail.sh
Bitte mehr Infos...
Poste mal bitte die komplette Email die du erhälst und verrat mir bitte auch wie/wo du es startest und als welcher Benutzer und in Verbindung mit Debian & IPC oder standalone.... Und wenn standalone, haste auch die SMTP Einstellungen richtig vorgenommen?
Was kommt wenn du das Script mit "now" ausführst?
Poste mal bitte die komplette Email die du erhälst und verrat mir bitte auch wie/wo du es startest und als welcher Benutzer und in Verbindung mit Debian & IPC oder standalone.... Und wenn standalone, haste auch die SMTP Einstellungen richtig vorgenommen?
Was kommt wenn du das Script mit "now" ausführst?
Du musst nicht kämpfen um zu siegen
Re: Script - SendIPmail.sh
feissmaik hat geschrieben:Bitte mehr Infos...
Poste mal bitte die komplette Email die du erhälst und verrat mir bitte auch wie/wo du es startest und als welcher Benutzer und in Verbindung mit Debian & IPC oder standalone.... Und wenn standalone, haste auch die SMTP Einstellungen richtig vorgenommen?
Was kommt wenn du das Script mit "now" ausführst?
root@debian /bin > sendipmail.sh now
LASTIP: AG - CURRENTIP:
AG
Verschicke Email...
done
root@debian /bin >
das ist der Inhalt und so kommt die Mail an. Führe es standalone aus, habe es in rc.local reingepackt.
Hier die Mail:
debian.fritz.box hat sich neu eingewaehlt und eine neue IP erhalten
Last IP: AG
Current IP:
AG
das verschicken funktioniert ja, aber die Mail ist halt ohne Ip-adressen.
Danke schonmal . Grüße
-
- Entwickler Team
- Beiträge: 2576
- Registriert: So 17. Apr 2011, 11:39
- Been thanked: 1 time
- Kontaktdaten:
Re: Script - SendIPmail.sh
debian.fritz.box? Ist das ne fritzbox?
soweit ich das bisher beurteilen kann scheint er leider neuerdings Probleme zu haben die IP von myip.ch auszulesen...
wenn ichs hier lokal ansurfe kommt:
Bearbeite also mal das Script und änder CHECKURL= in CHECKURL2=
und CHECKURL2= in CHECKURL= ... also sodass er die IP über dyndns ermittelt
soweit ich das bisher beurteilen kann scheint er leider neuerdings Probleme zu haben die IP von myip.ch auszulesen...
wenn ichs hier lokal ansurfe kommt:
aber wenn ich es über wget abrufe ( wget -q -O - http://www.myip.ch ) dann steht da nurnochCurrent IP Address: 1.2.3.4
Powered by Micro Solutions AG
wiederhol ich das aber, funktioniert es auf einmal.... also scheint myip.ch Probleme zu machen</html> by <a href="http://www.microsolutions.ch">Micro Solutions AG</a>
Bearbeite also mal das Script und änder CHECKURL= in CHECKURL2=
und CHECKURL2= in CHECKURL= ... also sodass er die IP über dyndns ermittelt
Du musst nicht kämpfen um zu siegen
-
- Entwickler Team
- Beiträge: 2576
- Registriert: So 17. Apr 2011, 11:39
- Been thanked: 1 time
- Kontaktdaten:
Re: Script - SendIPmail.sh
evtl. gehts auch hiermit, hab ich aber noch nicht testen können:
Code: Alles auswählen
#!/bin/bash
#
# Prueft anhand myip.ch oder checkip.dyndns.org die Internet IP und
# verschickt ne Email sobald sich diese aendert...
#
# Benoetigt: apt-get install sendEmail
#
# v0.4
### CONFIG - START
# Maileinstellung -> einkommentiern ODER ueber " ipc cfg " einstellen
#SMTPFROM="`hostname`@fqdn.net"
#SMTPTO='admin@fqdn.net'
#SMTPSERVER='mail.fqdn.net'
#SMTPUSER=''
#SMTPPASS=''
# Zeit in Sekunden zwischen den Abfragen
EVERY="300"
### CONFIG - END
# -------------------------------------------------------------- #
# >>> >> > DO NOT MESS WiTH ANYTHiNG BELOW THiS LiNE! < << <<< #
# -------------------------------------------------------------- #
[ -z "$SMTPSERVER" ] && source /var/emu/conf/ipc.cfg
CHECKIPURL["myip"]="http://www.myip.ch/"
CHECKIPURL["dyndns"]="http://checkip.dyndns.org/"
srcn=$(basename $0)
IPFILE=/tmp/.$srcn
CHKURLc=0
if [ ! -f /usr/bin/sendEmail ] ; then
echo -e "\033[1;31mMailbenachrichtigung wurde aktiviert, jedoch ist sendEmail nicht installiert!\033[0m"
echo ""
exit 1
fi
get_CURRENTIP() {
OK=0
for i in ${!CHECKIPURL[*]}; do
[ "$OK" = "1" ] && break
wget -q --timeout=10 -O ${IPFILE}_currentip $CHECKIPURL[$i]
if [ "$i" == "myip" ]; then
CURRENTIP=$(cat ${IPFILE}_currentip | grep "IP Address" | cut -d ' ' -f4)
else
CURRENTIP=$(cat ${IPFILE}_currentip | cut -d ' ' -f 6 | cut -d '<' -f 1)
fi
if [ -z "$CURRENTIP" -o "$CURRENTIP" = " *" -o "$CURRENTIP" = "*1.0 *" ]; then
[ ! -z "$1" ] && echo "Hmm... $CHECKIPURL seems to be down?!"
else
OK=1
fi
done
[ "$OK" = "0" ] && echo "Error: Cant get current ip!" && CURRENTIP=0
#rm -f ${IPFILE}_currentip
}
save_CURRENTIP() {
[ -z "$CURRENTIP" ] && get_CURRENTIP
echo $CURRENTIP > $IPFILE
}
get_LASTIP() {
if [ -f "$IPFILE" ]; then
LASTIP=$(cat $IPFILE)
else
LASTIP=0
fi
}
check_interval() {
echo $(pidof -x $0) >/tmp/.pid.$srcn
save_CURRENTIP
while true; do
get_CURRENTIP
get_LASTIP
if [ "$LASTIP" != "$CURRENTIP" ]; then
send_Email
save_CURRENTIP
fi
sleep $EVERY
done
}
send_Email() {
SUBJECT="IPC CS-Server IP change"
echo "`hostname -f` hat sich neu eingewaehlt und eine neue IP erhalten" >/tmp/mail
echo "" >>/tmp/mail
echo "Last IP: $LASTIP" >>/tmp/mail
echo "Current IP: $CURRENTIP" >>/tmp/mail
echo "" >>/tmp/mail
sed -e 's/$/\r/' /tmp/mail >/tmp/mail.txt
sendEmail -f $SMTPFROM -t $SMTPTO -u "$SUBJECT" -o message-file=/tmp/mail.txt -s $SMTPSERVER\
-xu $SMTPUSER -xp $SMTPPASS >/dev/null 2>&1
rm -f /tmp/mail && rm -f /tmp/mail.txt >/dev/null 2>&1
}
kill_script() {
counter="5"
PID=$(cat /tmp/.pid.$srcn)
if [ -z "$PID" ]; then
PID=$(pidof -x $srcn)
fi
if [ ! -z "$PID" ]; then
PID="$PID `pidof -x sleep`"
kill -9 $PID >/dev/null 2>&1
echo "${1}ed: $PID"
else
echo "Nothing to $1!"
fi
sleep 5
if [ ! -z `pidof -x $srcn` ]; then
while [ $counter -gt 0 ]; do
counter=$(expr $counter - 1)
echo "...Retrying to $1 script! (retrys left: $counter , PID: $PID)"
kill -9 $PID >/dev/null 2>&1
PID=$(pidof -x $srcn)
PID="$PID `pidof -x sleep`"
done
fi
echo "Should be killed..."
rm -f /tmp/.pid.$srcn
}
case "$1" in
"")
check_interval
;;
[aA][uU][tT][oO])
$0 &
;;
[sS][tT][oO][pP]|[kK][iI][lL][lL])
kill_script $1
;;
[nN][oO][wW])
get_CURRENTIP
get_LASTIP
echo "LASTIP: $LASTIP - CURRENTIP: $CURRENTIP"
echo "Verschicke Email..."
send_Email
echo "done"
save_CURRENTIP
;;
[hH][eE][lL][pP]|[hH][iI][lL][fF][eE]|?)
echo "Usage: $0 [now|auto|kill|help]"
echo "$0 now -> Sofortiges abfragen und sendern der Email"
echo "$0 auto -> Ueberprueft alle $EVERY Sekunden"
echo "$0 kill -> Script wird beendet"
echo "$0 help -> Zeigt diese Hilfr..."
;;
*)
echo "Usage: $0 [now|auto|kill|help]"
;;
esac
exit 0
Du musst nicht kämpfen um zu siegen
Re: Script - SendIPmail.sh
feissmaik hat geschrieben:debian.fritz.box? Ist das ne fritzbox?
soweit ich das bisher beurteilen kann scheint er leider neuerdings Probleme zu haben die IP von myip.ch auszulesen...
wenn ichs hier lokal ansurfe kommt:aber wenn ich es über wget abrufe ( wget -q -O - http://www.myip.ch ) dann steht da nurnochCurrent IP Address: 1.2.3.4
Powered by Micro Solutions AGwiederhol ich das aber, funktioniert es auf einmal.... also scheint myip.ch Probleme zu machen</html> by <a href="http://www.microsolutions.ch">Micro Solutions AG</a>
Bearbeite also mal das Script und änder CHECKURL= in CHECKURL2=
und CHECKURL2= in CHECKURL= ... also sodass er die IP über dyndns ermittelt
Super, damit hats geklappt Danke
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast