Rastreando suas encomendas dos Correios
Publicado por Fábio Fabris (última atualização em 23/01/2010)
[ Hits: 9.275 ]
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
Menu no terminal usando Shell Script
Slackware 14.2 Pós-Instalação - Idioma, Teclado, Otimizações
Script para Remover Ascentos em arquivos HTML
Inicializando os serviços de OmniBus
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









