1

На Debian 8,9

Я хочу проверить свой IP-адрес и отправлять электронную почту каждый час.

что я хочу сделать, это

1.Проверьте IP-адрес моего сервера -> curl globalip.me 2.Отправить IP-адрес по электронной почте.

А. Я знаю, как отправлять почту в командной строке. Б. Я знаю, как настроить Crond.

Однако A требует ручного ответа, поэтому я не знаю, как использовать A в настройке B.

Есть ли хороший способ?

3 ответа3

0

curl globalip.me | mail -s "my new ip" yourmail@example.com

Здесь -s "my new ip" является темой сообщения. Возможно, вы захотите попробовать man mail для дополнительных опций, таких как электронная почта для полей "CC" или "BCC" и т.д.

0

cron отправит вывод процесса на все, что ему говорят в переменной MAILTO. Вы можете выполнить curl или найти свой IP с помощью любого количества инструментов.

Что еще более важно, вы должны убедиться, что ваша система может отправлять почту и принимать ее везде, где вы собираетесь ее читать. Если вы получаете общедоступный IP-адрес через DHCP, ваш интернет-провайдер может заблокировать SMTP, проверьте это с помощью чего-то простого, например, записи cron для отправки имени хоста или чего-то подобного.

0

если вы хотите иметь свой внутренний сетевой / частный ip (а не публичный, предоставленный командой curl в ответе ~ Putnik, вы можете использовать

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

тогда, как правильно ответит Путник, отправь это в почту ...

ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9  | mail -s "$HOSTNAME new ip" yourmail@example.com

Далее нам нужно добавить эту команду в ваш crontab, поэтому

vim /etc/crontab

и добавить в последнюю строку ...

0 * * * * <$YOUR_USER_NAME> ip r | grep -i wlp3s0 | grep -i src | cut -d' ' -f9  | mail -s "$HOSTNAME new ip" yourmail@example.com 

БОНУС :: Cronjobs может потерпеть неудачу! Контролируйте свой важный cronjob, вставив следующий фрагмент в конце записи crontab. Не забудьте заменить адрес электронной почты и имя для вашего cronjob. Если ваша работа cron не удастся или даже не начнется, вы получите оповещение по электронной почте.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .