crontab não roda script de backup

1. crontab não roda script de backup

Tomatebg Rbg
tomatebg

(usa Ubuntu)

Enviado em 25/06/2019 - 12:06h

Bom dia,
Estou desenvolvendo um script de backup para um trabalho da facul, ele precisa ser rodado automaticamente pelo crontab em um intervalo determinado pelo usuario, porém, o script só roda na mão, no crontab ele não executa, ou seja, não faz o backup ou atualização do conteudo das pastas.
Já tentei reiniciar o crontab, e mexer automaticamente no arquivo e não solucionou.

Dando crontab-l ele mostra o agendamento, mas não parece executar.

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * root /home/tomatebg/Downloads/bbb/backup.sh
#


Script do backup:
#!/bin/bash
INICIO=`date +%d/%m/%Y-%H:%M:%S` #Marca o horário de inicio
LOG='/home/tomatebg/Downloads/bbb/backup-log.txt' #Cria um arquivo de log ou atualiza o já existente
BOD='/home/tomatebg/Downloads/bbb/config.txt'
CRF='/home/tomatebg/Downloads/bbb/.cronconfig.txt'
ARC='/home/tomatebg/Downloads/bbb/backup.sh' #Arquivo com as definições de origem/destino

if [ -e $BOD ]; then #Checa existência do arquivo
ORIGEM=`(cat $BOD | awk '{print $1}')` #Pega a origem presente no arquivo "config"
echo "Origem : $ORIGEM" >> $LOG
DESTINO=`(cat $BOD | awk '{print $2}')` #Pega o destino presente no arquivo "config"
echo "Destino : $DESTINO" >> $LOG
VCNT=`(cat $CRF )` #Pega o destino presente no arquivo "config"



else #Criação do arquivo "config" caso não exista
echo 'Digite a origem do backup : '
read ORIGEM #Leitura da origem
while [ ! -d "$ORIGEM" ]; do #Checa se a origem lida existe
echo 'Origem não existente' #Aviso ao usuário de que a origem não existe
echo 'Digite a origem do backup : '
read ORIGEM
done
echo "Origem escolhida : $ORIGEM"
echo 'Digite o destino do backup : '
read DESTINO #Leitura do destino
echo "Destino escolhido : $DESTINO"
echo "$ORIGEM $DESTINO" >> $BOD #Salva no arquivo "config" os dados lidos
#####
fi

if [ -s "$CRF" ]; then
echo 'Realizando tarefa conforme agendamento anterior' >> $LOG

else
echo "criando novo agendamento"
crontab -u -l > /home/tomatebg/Downloads/bbb/.cronconfig.txt
echo "0-Domingo"
echo "1-Segunda"
echo "2-Terça"
echo "3-Quarta"
echo "4-Quinta"
echo "5-Sexta"
echo "6-Sabado"
echo "*-todos os dias"
echo -n "Informe o dia da semana: "
read adia
clear
echo "valores de 1 a 12"
echo "*-Todos os meses"
echo -n "Informe o mês: "
read ames
clear
echo "Valores de 1 a 31"
echo "*-Qualquer dia"
echo "Algum dia em especifico do mês:"
read adata
clear
echo "Valores de 0 a 23"
echo "*-qualquer hora"
echo -n "Hora: "
read ahora
clear
echo "Valores de 0 a 59"
echo "*-Qualquer minuto"
echo -n "Minuto: "
read amin
echo "$amin $ahora $adata $ames $adia $ARC" >> "/home/tomatebg/Downloads/bbb/.cronconfig.txt"
crontab < "/home/tomatebg/Downloads/bbb/.cronconfig.txt"
echo "Agendamento realizado"

fi

echo " " >> $LOG
echo "|-----------------------------------------------" >> $LOG
echo " Sincronização iniciada em $INICIO" >> $LOG #Salva no arquivo de log o horário de inicio do backup


rsync -Cravzp --delete $ORIGEM/ $DESTINO/ >> $LOG
FINAL=`date +%d/%m/%Y-%H:%M:%S` #Marca o horário de finalização


echo " Sincronização Finalizada em $FINAL" >> $LOG #Salva no arquivo de log o horário de finalização do backup
echo "|-----------------------------------------------" >> $LOG
echo " " >> $LOG


Desde já agradeço



  


2. Re: crontab não roda script de backup

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 25/06/2019 - 13:46h


esse script tem permissão pra execução ?



3. Re: crontab não roda script de backup

Tomatebg Rbg
tomatebg

(usa Ubuntu)

Enviado em 25/06/2019 - 13:50h

danniel-lara escreveu:


esse script tem permissão pra execução ?


Sim, ele roda perfeitamente se chamado manualmente no terminal


4. Re: crontab não roda script de backup

Stanislaus K
StanislausK

(usa FreeBSD)

Enviado em 25/06/2019 - 16:14h

Ola,

será que o cron está ativo?

Use o comando systemctl status cron para verificar. Se estiver inativo, use os comandos systemctl start cron e systemctl enable cron para ativar.

Outra coisa:

* * * * * root /home/tomatebg/Downloads/bbb/backup.sh

Voce colocou o agendamento no crontab, o comando para rodar o script, mas não definiu nenhum periodo?!?

Por exemplo: <minuto> <hora> <dia> <mes> <dia da semana> <comando>

*/15 * * * * /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado a cada 15 minutos
* 1-23 * * * /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado toda a hora
*/15 * * * 1-5 /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado a cada 15 minutos, de segunda a sexta
0 6 * * 1 /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado toda segunda as 6h00

E não me recordo de ter usuário no agendamento?




5. Re: crontab não roda script de backup

Otávio Siqueira
FR34AK

(usa Deepin)

Enviado em 25/06/2019 - 19:06h

StanislausK escreveu:

Ola,

será que o cron está ativo?

Use o comando systemctl status cron para verificar. Se estiver inativo, use os comandos systemctl start cron e systemctl enable cron para ativar.

Outra coisa:

* * * * * root /home/tomatebg/Downloads/bbb/backup.sh

Voce colocou o agendamento no crontab, o comando para rodar o script, mas não definiu nenhum periodo?!?

Por exemplo: <minuto> <hora> <dia> <mes> <dia da semana> <comando>

*/15 * * * * /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado a cada 15 minutos
* 1-23 * * * /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado toda a hora
*/15 * * * 1-5 /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado a cada 15 minutos, de segunda a sexta
0 6 * * 1 /home/tomatebg/Downloads/bbb/backup.sh: assim o seu script será executado toda segunda as 6h00

E não me recordo de ter usuário no agendamento?



Sim, no agendamento você pode especificar o usuário que irá executar o comando.


------------------------------------------------------------------------------------------------------------------------------------------------
root@bigbang:/# mv * > /dev/null
------------------------------------------------------------------------------------------------------------------------------------------------



6. Re: crontab não roda script de backup

Henrique
Henrique-RJ

(usa Outra)

Enviado em 26/06/2019 - 20:41h

tomatebg escreveu:

danniel-lara escreveu:


esse script tem permissão pra execução ?


Sim, ele roda perfeitamente se chamado manualmente no terminal


Tenta contactar o Mauriciodez que ele deve saber como fazer o cron executar isso








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts