Dynamisch generierte E-Mails werden stündlich vom Server gesendet

1

Unter Debian 8.9

Ich möchte meine IP-Adresse überprüfen und jede Stunde eine E-Mail senden.

was ich machen will ist

1.Überprüfen Sie die IP-Adresse meines Servers -> curl globalip.me 2.Senden Sie die IP-Adresse per E-Mail.

A. Ich kann E-Mails über die Befehlszeile senden. B. Ich weiß, wie man Crond einrichtet.

A erfordert jedoch eine manuelle Reaktion, sodass ich nicht weiß, wie A in der B-Einstellung verwendet wird.

Gibt es einen guten Weg?

weißer Bär
quelle
fyi; Wenn Sie versuchen, die öffentliche Adresse Ihres Servers im Auge zu behalten, möchten Sie DNS dynamisch aktualisieren und keine E-Mail senden.
Sirex

Antworten:

0

cron sendet die Ausgabe eines Prozesses an alles, was in der Variablen MAILTO angegeben ist. Sie können curl ausführen oder Ihre IP mit einer beliebigen Anzahl von Tools finden.

Noch wichtiger ist, dass Sie sicherstellen, dass Ihr System E-Mails senden und dort annehmen kann, wo Sie sie lesen möchten. Wenn Sie über DHCP eine öffentliche IP erhalten, blockiert Ihr ISP möglicherweise SMTP. Testen Sie dies mit etwas Einfachem wie einem Cron-Eintrag, um den Hostnamen oder etwas Ähnliches zu senden.

jmw
quelle
0

curl globalip.me | mail -s "my new ip" [email protected]

Hier -s "my new ip"ist Betreff der Nachricht. Möglicherweise möchten Sie man mailweitere Optionen wie E-Mail für "CC" - oder "BCC" -Felder usw. ausprobieren .

Putnik
quelle
0

Wenn Sie möchten, dass Ihr internes Netzwerk / Ihre private IP-Adresse (und nicht die öffentliche, die Sie mit dem Befehl curl in der Antwort von ~ Putnik erhalten haben), können Sie sie verwenden

ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9  
#note, the wlp3s0 interface name could/will be different on your machine

dann, wie Putnik zu Recht antwortet, leiten Sie das in die Post ...

ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9  | mail -s "$HOSTNAME new ip" [email protected]

als nächstes müssen wir diesen befehl zu ihrer crontab hinzufügen, also

vim /etc/crontab

und zur letzten Zeile hinzufügen ...

0 * * * * <$YOUR_USER_NAME> ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9  | mail -s "$HOSTNAME new ip" [email protected] 

BONUS :: Cronjobs können scheitern! Überwachen Sie Ihren wichtigen Cronjob, indem Sie das folgende Snippet am Ende des Crontab-Eintrags einfügen. Stellen Sie sicher, dass Sie die durch Ihre E-Mail-Adresse und einen Namen für Ihren Cronjob ersetzen. Sollte Ihr Cron-Job fehlschlagen oder nicht starten, erhalten Sie eine Alarm-E-Mail.

&& curl -sm 30 k.wdt.io/<email-address>/<cronjob-name>?c=0_*_*_*_*
Sean Davey
quelle