Depuração do script logrotate postrotate

1

A seguir está minha conf de logrotate.

/mnt/je/logs/apache/jesites/web/*.log" {
        missingok
        rotate 0
        size 5M
        copytruncate
        notifempty
        sharedscripts
        postrotate
                /home/bitnami/.conf/compress-and-upload.sh /mnt/je/logs/apache/jesites/web/ web 
        endscript
}

E o script compress-and-upload.sh,

#!/bin/sh
# Perform Rotated Log File Compression
tar -czPf $1/log.gz $1/*.1

# Fetch the instance id from the instance
EC2_INSTANCE_ID="'wget -q -O - http://169.254.169.254/latest/meta-data/instance-id'"
if [ -z $EC2_INSTANCE_ID ]; then
echo "Error: Couldn't fetch Instance ID .. Exiting .."
exit;           
else    
        /usr/local/bin/s3cmd put $1/log.gz s3://xxxx/logs/$(date +%Y)/$(date +%m)/$(date +%d)/$2/$EC2_INSTANCE_ID-$(date +%H:%M:%S)-$2.gz
fi
# Removing Rotated Compressed Log File
rm -f $1/log.gz

Os arquivos são girados, mas o script de shell não é executado. Eu não sei como depurar o postscript.

Existe algum arquivo de log que eu verifiquei para ver se há algum problema de permissão.

Se eu executar diretamente o script dos trabalhos de upload do arquivo de linha de comando.

Obrigado.

    
por robert 25.06.2013 / 10:26

1 resposta

0

logrotate geralmente é executado como uma tarefa cron e seus erros acabam sendo enviados para root . Dê uma olhada em /var/mail/root ou, como alternativa, certifique-se de que /etc/aliases direcione o e-mail de root para algum lugar sensato e que sua instância possa, de fato, enviar e-mails.

    
por 25.06.2013 / 13:34