Script para enviar ip para o email
Dica publicada em Shell Script / Introdução
Script para enviar ip para o email
Se você não está afim de usar um desses programas que verificam a alteração do ip como no-ip, dyndns, etc, pode usar esse script simples e funcional. Apesar dos outros associarem um nome ao ip, o que é mais fácil de recordar, esse vai com intuito de aprendizado.
Nesse script você vê como manipular arquivos, enviar emails, etc. Espero que seja útil.
Abraços!
Nesse script você vê como manipular arquivos, enviar emails, etc. Espero que seja útil.
Abraços!
#!/bin/sh
#
#
#
#path de comandos usados no script
AWK=/usr/bin/awk
GREP=/usr/bin/grep
IFCFG=/sbin/ifconfig
CAT=/bin/cat
TOUCH=/usr/bin/touch
CHMOD=/bin/chmod
#path do comando mail
MAIL="/usr/bin/mail"
# destinatários que receberão o email como o ip
TO="meu@email.com.br meuoutro@email.com"
#interface onde está setado o ip externo, válido na inet.
EXT_IF="rl1"
# armazena em EXT_IP o ip válido
EXT_IP="`$IFCFG $EXT_IF | $GREP -w inet | $AWK '{print$2}'`"
# arquivo que armazena o ip atual
ARQ="/tmp/ip.txt"
# testa se $ARQ existe, se existir armazena em $CUR_IP o valor
# de $ARQ então testa se $EXT_IP é igual a $CUR_IP ou seja,
# se o ip não mudou. Se mudou envia o ip para o email dos
# destinatários e armazena em $ARQ.
# Se $ARQ não existir então criaremos e setamos permissões de
# r+w somente para root
if [ -e $ARQ ];
then
CUR_IP="`$CAT $ARQ`"
if [ $EXT_IP == $CUR_IP ];
then
echo "NO CHANGES"
else
echo $EXT_IP | $MAIL -s "MygwIP - $EXT_IP" $TO
echo $EXT_IP > $ARQ
fi
else
$TOUCH $ARQ
$CHMOD 0600 $ARQ
echo $EXT_IP > $ARQ
echo "new file $ARQ created."
fi
#
#
#
#path de comandos usados no script
AWK=/usr/bin/awk
GREP=/usr/bin/grep
IFCFG=/sbin/ifconfig
CAT=/bin/cat
TOUCH=/usr/bin/touch
CHMOD=/bin/chmod
#path do comando mail
MAIL="/usr/bin/mail"
# destinatários que receberão o email como o ip
TO="meu@email.com.br meuoutro@email.com"
#interface onde está setado o ip externo, válido na inet.
EXT_IF="rl1"
# armazena em EXT_IP o ip válido
EXT_IP="`$IFCFG $EXT_IF | $GREP -w inet | $AWK '{print$2}'`"
# arquivo que armazena o ip atual
ARQ="/tmp/ip.txt"
# testa se $ARQ existe, se existir armazena em $CUR_IP o valor
# de $ARQ então testa se $EXT_IP é igual a $CUR_IP ou seja,
# se o ip não mudou. Se mudou envia o ip para o email dos
# destinatários e armazena em $ARQ.
# Se $ARQ não existir então criaremos e setamos permissões de
# r+w somente para root
if [ -e $ARQ ];
then
CUR_IP="`$CAT $ARQ`"
if [ $EXT_IP == $CUR_IP ];
then
echo "NO CHANGES"
else
echo $EXT_IP | $MAIL -s "MygwIP - $EXT_IP" $TO
echo $EXT_IP > $ARQ
fi
else
$TOUCH $ARQ
$CHMOD 0600 $ARQ
echo $EXT_IP > $ARQ
echo "new file $ARQ created."
fi
Coloque na cron pra checar a cada 5 minutos e corra pro abraço! Lembrando que você necessita enviar emails, portanto configure seu smtp.
#cron
*/5 * * * * /bin/sh /usr/local/sbin/checkmyip.sh 2>&1