De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Noilson Caio Teixeira de Araújo
Data de Publicação: 30 de maio de 2011
Para suprir a falta de notificação de ticket que se vence no dia corrente, desenvolvi um simples programa em shell script para isso.
Fonte: https://mycodestock.com/code/899/
#!/bin/bash
# Noilson Caio
# 22 / abril / 2010
#
# Notifica tickets vencidos do datefiel, plugin do TRAC.
# Busca Tickets que se vencem na data atual de execucao do script
#
# data - equivale ao formato utilizado no trac.ini, vaiavel due_date.value em [ticket-custom]
# url - url do TRAC
#
#
#
data="$(date +%d-%m-%Y)"
url="trac.dominio.com"
#
# chaveaut - qualquer numero diferente de zero habilita a autenticacao
# Se chaveaut = 1
# usuario - usuario com permissoes de realizarconsultas no TRAC
# senha - senha do usuario
#
chaveaut="1"
usuario="usuario"
senha="senha"
#
# saida - arquivo de retorno da consuta
#
saida="$(mktemp)"
#
# mail - endereco de email onde sera enviado o aviso
#
mail="redes@dominio.com.br"
#
# Localiza e testa os principais programas envolvidos no processo
#
sedbin="$(which sed)"
mailbin="$(which mail)"
wgetbin="$(which wget)"
#
# Testa binarios
#
for i in "$sedbin" "$mailbin" "$wgetbin"
do
if [ ! -e "$i" ]
then
echo "binario nao encontrado"
exit 127
fi
done
#
#
# Consulta autenticada
#
consultaaut()
{
wget -q "http://"$url"/query?status=accepted&status=assigned&status=new&status=reopened&due_date=%7E"$data"&format=csv&order=priority&col=id&col=summary&col=due_date&col=status&col=owner&col=milestone&col=component" --user="$usuario" --password="$senha" -O "$saida"
}
#
# Consulta sem autenticacao
#
consulta()
{
wget -q "http://"$url"/query?status=accepted&status=assigned&status=new&status=reopened&due_date=%7E"$data"&format=csv&order=priority&col=id&col=summary&col=due_date&col=status&col=owner&col=milestone&col=component" -O "$saida"
}
#
# Testa chave de autenticacao
#
if [ "$chave" != "0" ]
then
consultaaut
else
consulta
fi
#
# Testa resultado da consulta
#
conteudo=$(cat $saida | sed -e 1d)
if [ -z "$conteudo" ];
then
exit
else
sed -i 1d "$saida"
while read ticket
do
id=$(echo $ticket | cut -d',' -f 1)
sumario=$(echo $ticket | cut -d',' -f 2)
dono=$(echo $ticket | cut -d',' -f 5)
#
# MSG
#
msg()
{
echo "
ticket de id: $id - http://"$url"/ticket/"$id" [ $sumario ] responsavel : $dono. Vence hoje, "$data"
"
}
#
# Notifica por email
#
msg | mail -s "ticket de id: [ $id ] - Data limite" "$mail"
#
# Limpa fila
#
sed -i 1d "$saida"
done < "$saida"
#
# Limpa tempfile
#
rm -rf "$saida"
#
fi
exit 0
Adicionar o seguinte script em /etc/cron.daily/ e chmod +x /etc/cron.daily/Wdatefield.sh
#!/bin/bash /usr/caminho/do/script/Wdatefield.sh
Tem um vídeo com o funcionamento do script em: http://ncaio.ithub.com.br/2011/05/05/shell-script-notificacoes-de-tickets-vencidos-plugin-datefield-trac/
Blog do autor: http://ncaio.ithub.com.br