Eu descobri o meu problema. O% realroot
não tinha permissões para a minha pasta /root
nomeada de forma inadequada. Um simples chmod -R 707 /root
resolveu isso.
Eu fiz um script curto em um servidor para fazer backup de uma pasta e enviá-lo via FTP para outro servidor. Eu estou tentando configurá-lo para correr a cada minuto usando crontab. Ele funciona perfeitamente quando eu o executo manualmente, mas quando o cron o executa, nada parece acontecer (ou seja, nenhum arquivo recebido na outra extremidade). Como eu disse no título, a tarefa aparece no syslog como se tudo fosse OK.
Aqui está o script:
#! /bin/sh
cd /root
FILENAME="backup-$(date +%b_%d_%Y_%H:%M).zip"
zip -r $FILENAME folder
ftp -in 74.131.78.127 24721 << EOF > ~/log.txt 2>&1
user myusername
binary
cd Desktop/backups
mput $FILENAME
EOF
rm $FILENAME
Entrada do Crontab:
* * * * * /root/backup.sh
Eu inseri isso usando crontab -e
.
Eu descobri o meu problema. O% realroot
não tinha permissões para a minha pasta /root
nomeada de forma inadequada. Um simples chmod -R 707 /root
resolveu isso.
É útil configurar um cron.log separado, o que é mais útil.
Este Q & A descreve o processo:
16.04: Como faço o cron criar o cron.log e monitorá-lo em tempo real?
Também nesta resposta estão as instruções para criar um comando wcron
que exibe quase em tempo real.
Além disso, vincula-se a outra resposta,
Como alterar o nível de log do cron?
que mostra como alterar o nível de log para incluir mais do que apenas o início de tarefas - o nível 15 também mostrará erros e hora de término.
Talvez sua resposta esteja na saída do registro.
Tags cron