Olá, Algum tempo atrás eu precisei criar um script que enviasse um e-mail no caso do IP da máquina ter sido alterado, tá meio tosco mas acho que você pode usar ele como ponto de partida.
#!/bin/bash # # ############################################################################ # # Name: getIP # # Description # Verify if the IP address has changed and, if so, send a mail with new IP # address # # Details # This script is intended to be used for machines that are not directly # connected to the internet, and therefore don't have a valid IP address, # thats why this script uses a web browser and connect to # http://whatismyip.com instead of simple use the ifconfig command # # Author # Andre Saunite # # E-mail # [EMAIL PROTECTED] # # Date of Creation # 2008-02-09 # # Table of modifications # +---------------------------------------------------------------------+ # | Modified | Description | Modifier | # |---------------------------------------------------------------------| # | 2008-02-09 | Creation of the script | Andre Saunite | # | 2008-02-12 | Function to clear log | Andre Saunite | # +---------------------------------------------------------------------+ # # ############################################################################ # Definition of variables PREVIOUS_IP='/root/getIP/previous_ip' LINKS='/usr/bin/links' LINKS_OPTIONS='-dump' LOG='/root/getIP/getIP.log' TMPFILE='/root/getIP/ip.tmp' TMPFILE2='/root/getIP/mail.tmp' TOEMAIL='[EMAIL PROTECTED]' EMAILACCOUNT='gmail' MAIL='/usr/bin/nail' MAXLOGLINES=5000 LOGTMP='/root/getIP/getIP-2.log' IPSITE='http://whatismyip.com/automation/n09230945.asp' # Function to Send the IP via e-mail sendNewIP() { echo "Your IP Address has changed! Your new IP is: $(cat $TMPFILE)" > $TMPFILE2 echo "Bellow is the full log of the changes:" >> $TMPFILE2 echo >> $TMPFILE2 cat $LOG >> $TMPFILE2 $MAIL -A $EMAILACCOUNT -s "getIP Message: New IP detected" $TOEMAIL < $TMPFILE2 echo "$(date +"%Y-%m-%d %H:%M:%S"): E-mail with new IP sent." >> $LOG rm $TMPFILE2 } # Function to clear log clearLog() { LOGLINES=$(cat $LOG | wc -l) if [ $LOGLINES -gt $MAXLOGLINES ]; then tail -$(($(echo $LOGLINES / 2 | bc))) $LOG > $LOGTMP mv $LOGTMP $LOG fi } # Main # Call logExists Function echo "$(date) Starting getIP script" >> $LOG # Get the current IP address $LINKS $LINKS_OPTIONS $IPSITE | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' > $TMPFILE # Verify if current IP is the same as previous (If there were a previous) if [ -e $PREVIOUS_IP ]; then # There were a previous IP echo "$(date +"%Y-%m-%d %H:%M:%S"): Previous IP address: $(cat $PREVIOUS_IP)" >> $LOG echo "$(date +"%Y-%m-%d %H:%M:%S"): Current IP address: $(cat $TMPFILE)" >> $LOG if [ ! "$(diff $PREVIOUS_IP $TMPFILE)" ]; then # Previous and current IP are the same, so don't send mail echo "$(date +"%Y-%m-%d %H:%M:%S"): Current IP and previous are the same. No e-mail will be sent." >> $LOG else # Previous and current IP differs, so send new IP via mail echo "$(date +"%Y-%m-%d %H:%M:%S"): Current IP and previous differ. Sending new IP via e-mail." >> $LOG sendNewIP fi else # No previous IP found, so send the IP via e-mail echo "$(date +"%Y-%m-%d %H:%M:%S"): No Previous IP found" >> $LOG sendNewIP fi # Call clearLog function clearLog # A little cleanup cp $TMPFILE $PREVIOUS_IP rm $TMPFILE Abs, André Saunite 2008/11/24 Bruno Gunter Fricke <[EMAIL PROTECTED]>: > Pode-se tentar com um ps auxxx também. > > E concordo, o Nagios, Zabbix e diversos são para cuidar de uma rede. Fazer > um NMS e nao para cuidar de uma máquina apenas. > > 2008/11/24 Raul Libório <[EMAIL PROTECTED]> > >> Ah... só complementando... >> Com um service --status-all é possível checar todos os serviços. Daí >> pra frente é só tratar a saída. >> >> abraços, >> -- >> >> Raul Libório >> UniJorge Redes - www.redesfja.com >> rauhmarutsªhotmailºcom >> Linux user#4444581 >> >> " Se você tem uma maçã e eu tenho uma maçã e, em seguida, trocarmos as >> maçãs, eu e você ainda teremos uma maçã cada um. Mas se você tem uma >> idéia e eu tenho uma idéia e trocarmos essas idéias, então cada um de >> nós terá duas idéias. " >> >> George Bernard Shaw >> >> Dúvidas: enviar para /dev/null >> >> 2008/11/24 Raul Libório <[EMAIL PROTECTED] <rauhmaru%40gmail.com>>: >> >> > Cara... discordo de vc. Prefiro mil vezes usar um script do que ter de >> > configurar o Nagios. Viva a simplicidade :) >> > -- >> > >> > Raul Libório >> > UniJorge Redes - www.redesfja.com >> > rauhmarutsªhotmailºcom >> > Linux user#4444581 >> > >> > " Se você tem uma maçã e eu tenho uma maçã e, em seguida, trocarmos as >> > maçãs, eu e você ainda teremos uma maçã cada um. Mas se você tem uma >> > idéia e eu tenho uma idéia e trocarmos essas idéias, então cada um de >> > nós terá duas idéias. " >> > >> > George Bernard Shaw >> > >> > Dúvidas: enviar para /dev/null >> > >> > >> > >> > 2008/11/24 [DirectWeb] - Marcio >> > <[EMAIL PROTECTED]<marcio%40directweb.com.br> >> >: >> >> >> >> Para de inventar ... usa o Nagios, é perfeito pra isso! >> >> >> >> >> >> >> >> Att, >> >> >> >> >> >> Marcio >> >> >> >> >> >> >> >> listas_internet escreveu: >> >>> Pessoal, >> >>> >> >>> Se não me engano já apareceu aqui na lista um script que checava se um >> >>> determinado serviço estava on-line e baseado nisso enviava um email, >> >>> tentei fazer um e não fui capaz, procurei na net usando "Santo Google" >> >>> e nada, poderiam me ajudar ? >> >>> Agradeço muito. >> >>> >> >>> --Carlos >> >>> >> >>> >> >>> ------------------------------------ >> >>> >> >>> ---------------------------------------------------------- >> >>> Esta lista não admite a abordagem de outras liguagens de programação, >> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem >> prévio aviso. >> >>> ---------------------------------------------------------- >> >>> Sair da lista: >> >>> [EMAIL PROTECTED]<shell-script-unsubscribe%40yahoogrupos.com.br> >> >>> ---------------------------------------------------------- >> >>> Esta lista é moderada de acordo com o previsto em >> http://www.listas-discussao.cjb.net >> >>> ---------------------------------------------------------- >> >>> Servidor Newsgroup da lista: news.gmane.org >> >>> Grupo: gmane.org.user-groups.programming.shell.brazil >> >>> >> >>> Links do Yahoo! Grupos >> >>> >> >>> >> >>> >> >>> >> >>> >> >> >> >> >> >> ------------------------------------ >> >> >> >> ---------------------------------------------------------- >> >> Esta lista não admite a abordagem de outras liguagens de programação, >> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem >> prévio aviso. >> >> ---------------------------------------------------------- >> >> Sair da lista: >> >> [EMAIL PROTECTED]<shell-script-unsubscribe%40yahoogrupos.com.br> >> >> ---------------------------------------------------------- >> >> Esta lista é moderada de acordo com o previsto em >> http://www.listas-discussao.cjb.net >> >> ---------------------------------------------------------- >> >> Servidor Newsgroup da lista: news.gmane.org >> >> Grupo: gmane.org.user-groups.programming.shell.brazil >> >> >> >> Links do Yahoo! Grupos >> >> >> >> >> >> >> > >> >> >> > > [As partes desta mensagem que não continham texto foram removidas] > >
