Você está perdendo uma nova linha no final do trabalho, no seu crontab?
O que "crontab -l" mostra?
Eu agendei uma tarefa a cada 5 minutos no meu crontab.
A tarefa é bem programada, ativando o log cron no rsyslog e verificando se ela é executada conforme planejado:
- Right user
- Right command
Entradas de registro de amostra:
Dec 23 06:40:01 computer /USR/SBIN/CRON[26422]: (myuser) CMD (bash /home/myuser/save.sh &>/home/myuser/cron.log)
Eu até tentei:
Dec 23 06:40:01 computer /USR/SBIN/CRON[26422]: (myuser) CMD (/home/myuser/save.sh &>/home/myuser/cron.log)
Exemplo de comando crontab:
*/5 * * * * /home/myuser/save.sh &>/home/myuser/cron.log
O script tem os direitos certos: pode ser executado por myuser
Exemplo de script:
#!/bin/sh
HOME_DIR="/home/$USER"
LOGFILE=save.log
DIR_NAME="mydir"
VOLATILE="$HOME_DIR/$DIR_NAME/"
PERMANENT="$HOME_DIR/$DIR_NAME""_storage/"
if [ ! -d "$PERMANENT" ]; then
mkdir "$PERMANENT"
fi
echo 'date +%x\ %X'>$HOME_DIR/$LOGFILE
# Check if both directories actually exist
if [ -d "$VOLATILE" -a -d "$PERMANENT" ]; then
# Control will enter here if both $VOLATILE and $PERMANENT exist.
rsync -r -t -v "$VOLATILE" "$PERMANENT">$LOGFILE.output
echo OK>>$HOME_DIR/$LOGFILE
else
echo KO>>$HOME_DIR/$LOGFILE
if [ ! -d "$VOLATILE" ]; then
echo "Volatile dir does not exist">>$HOME_DIR/$LOGFILE
fi
if [ ! -d "$PERMANENT" ]; then
echo "Permanent dir does not exist">>$HOME_DIR/$LOGFILE
fi
fi
O comando é um script bash que executa corretamente manualmente com o mesmo usuário (mesmo se eu copiar e colar o comando exato executado no cron), mas não faz nada automaticamente.
Eu redireciono a saída do script em um arquivo de log personalizado para verificar sua execução, que permanece vazia quando a execução automática acontece.
Estou totalmente perdido, não sei o que está errado.
O que estou esquecendo?
[EDIT] Estou usando o Debian 6 Squeeze
Você está perdendo uma nova linha no final do trabalho, no seu crontab?
O que "crontab -l" mostra?
Eu tive o mesmo problema e corrigi-o removendo o "." do nome do arquivo. No seu caso, deve ser:
*/5 * * * * /home/myuser/save &>/home/myuser/cron.log
Tags cron debian-squeeze