Rastreando suas encomendas dos Correios
Publicado por Fábio Fabris (última atualização em 23/01/2010)
[ Hits: 8.944 ]
Download 1263939365.correios.sh (versão 2)
Script para rastrear os pacotes dos correios que você está esperando. Assim que o pacote mudar de estado ou chegar, um email é enviado para o usuário.
O email deve estar devidamente configurado.
Um exemplo de configuração para o gmail:
/etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:465
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=marvin
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=NO
UseTLS=YES
AuthUser=????@gmail.com
AuthPass=????
Versão 2 - Enviado por Fábio Fabris em 19/01/2010
Changelog: Sugestões de arthurd2 adicionadas;
Script mais robusto: prevê indisponibilidade do site;
Download 1263939365.correios.sh
#!/bin/bash URL='http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_TIPO=001&P_COD_UNI=' PATHTMP="/tmp" function getPage { wget -nv -t 10 $2 -O $1.html >>$PATHTMP/$CODE.log 2>>$PATHTMP/$CODE.log html2text -nobs $1.html > $1.out } function usage { cat << EOF uso: $0 -c [CODIGO DE RASTREAMENTO] -e [EMAIL] -i [INTERVALO] -b -c O código de rastreamento dado pelos correios -e O email para enviar as atualizações (o mail deve estar configurado) -i intervalo entre checagens em segundos (padrão: 1 hora) -b aviso sonoro no caso de modificação EOF } function checkOpt { eval R='$'$1 if test -z '$'$1 then echo $2 read -e $1 fi } function beepAux { if ! [ -z $BEEP ] then beep fi } while getopts "c:e:i:bh" OPTION do case $OPTION in c) CODE=$OPTARG;; e) EMAIL=$OPTARG;; i) POLLTIME=$OPTARG;; b) BEEP=beep;; h) usage exit;; ?) usage exit;; esac done checkOpt CODE "Entre com o código de ratreamento do produto" checkOpt EMAIL "Entre com o email que deve ser avisado" checkOpt POLLTIME "Entre com o intervalo de checagens" beepAux if [ -e $PATHTMP/${CODE}"base.out" ] then echo "arquivo de referencia existe" else echo "baixando arquivo de referencia" getPage $PATHTMP/${CODE}"base" $URL$CODE fi #echo | mail $EMAIL -s "\"Quando ' $CODE ' chegar te aviso\"" while [ 1 ]; do date date >> $PATHTMP/$CODE.log getPage $PATHTMP/${CODE}"tmp" $URL$CODE if cmp -s $PATHTMP/${CODE}"base.out" $PATHTMP/${CODE}"tmp.out" >> $PATHTMP/$CODE.log then echo 'Sem mudança' else echo 'Houve mudança' echo '***** Houve mudança *****' >> $PATHTMP/$CODE.log beepAux if fgrep -q Entregue $PATHTMP/${CODE}"base.out" then mail $EMAIL -s '"Chegou o Pacote"' <$PATHTMP/${CODE}"tmp.out" echo "chegou o pacote" exit else mail $EMAIL -s '"Mudança de Estado"' <$PATHTMP/${CODE}"tmp.out" getPage $PATHTMP/${CODE}"base" $URL$CODE fi fi sleep $POLLTIME done
Listar bolsas disponíveis no Senac
SabATT - Facilitador de atualização (Equo - Sabayon)
Configuração Automática de Servidor de Arquivos
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Excluir banco de dados no xampp (1)
phpmyadmin não abre no xampp (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta