在 Debian 8.9 上
我想每小时检查一次我的 IP 地址并发送电子邮件。
我想做的是
1.检查我的服务器 ip 地址 -> curl globalip.me 2.通过电子邮件发送 ip 地址。
A. 我知道如何在命令行中发送邮件。B. 我知道如何设置 crond。
但是A需要手动响应,所以我不知道如何在B设置中使用A。
有啥好办法吗??
答案1
cron 会将进程的输出发送到 MAILTO 变量中指定的任何位置。您可以执行 curl 或使用任意数量的工具查找您的 IP。
更重要的是,您需要确保您的系统可以发送邮件,并且无论您打算在哪里阅读邮件,邮件都能被接受。如果您通过 DHCP 获得公共 IP,您的 ISP 可能会阻止 SMTP,请使用简单的方法(例如 cron 条目)来测试此情况,以发送主机名或类似内容。
答案2
curl globalip.me | mail -s "my new ip" [email protected]
这-s "my new ip"
是邮件的主题。您可能想尝试man mail
更多选项,例如“抄送”或“密送”字段的电子邮件等。
答案3
如果你希望拥有自己的内部网络/私有 ip(而不是 ~Putnik 答案中 curl 命令提供的公共 ip,你可以使用
ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9
#note, the wlp3s0 interface name could/will be different on your machine
然后,正如 Putnik 正确回答的那样,将其发送到邮件中......
ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9 | mail -s "$HOSTNAME new ip" [email protected]
接下来,我们需要将此命令添加到你的 crontab 中,因此
vim /etc/crontab
并添加到最后一行...
0 * * * * <$YOUR_USER_NAME> ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9 | mail -s "$HOSTNAME new ip" [email protected]
奖励:Cronjobs 可能会失败!通过在 crontab 条目末尾粘贴以下代码片段来监控您的重要 cronjob。确保用您的电子邮件地址和 cronjob 的名称替换。如果您的 cron job 失败甚至无法启动,您将收到一封警报电子邮件。
&& curl -sm 30 k.wdt.io/<email-address>/<cronjob-name>?c=0_*_*_*_*