Autor Tópico: Problema ao rodar script no Cron  (Lida 1941 vezes)

Offline rafaelviana

  • Usuário Ubuntu
  • *
  • Mensagens: 7
    • Ver perfil
Problema ao rodar script no Cron
« Online: 19 de Novembro de 2011, 08:59 »
Tenho um script de backup das informações de um site.

1 - Faço o Dump do MySQL
2 - Copio todos os uploads feitos pelas empresas (cada empresa tem uma pasta de arquivos)

Compacto essas informações em um tar.

Se eu executo o script pelo terminal ele copia tudo corretamente ( com uma warning de removing leading names "\" quando gero o tar ). No entanto, se eu executo esse script pelo Cron o arquivo compactado tem o dump do MySQL corretamente, no entanto só tem 3 pastas de upload copiadas (deveria ter 40).

Todas as pastas de upload tem o mesmo tipo de permissão e contém os mesmos tipos de arquivos. Todas elas estão no mesmo diretório e nenhuma delas contém espaço no nome.

Qual teste eu posso fazer para verificar por que não estão sendo copiados todos os arquivos?

Segue script:

Código: [Selecionar]
#!/bin/bash

MYSQL_USER="xxxx"
MYSQL_PASSWORD="xxxx"
BACKUP_FOLDER="/home/xxxx/backups/"
BACKUP_DESTINATION=$BACKUP_FOLDER"mysql.sql"

#Gerar dump do MySQL
/usr/bin/mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --add-drop-database --add-drop-table --all-databases --disable-keys --extended-insert --add-locks --single-transaction > $BACKUP_DESTINATION

#Criar arquivo compactado com as informações do banco de dados e os uploads realizados pelos usuários
UPLOADS_FOLDER="/home/xxxx/programas/apache-tomcat-6.0.33/webapps/Servidor_XXX/assets/upload"

tar -czvf -P /home/xxxxx/backups/$(date +%Y%m%d).tar.gz $BACKUP_DESTINATION $UPLOADS_FOLDER

#Excluir arquivo gerado pelo MySQL
rm $BACKUP_FOLDER*sql

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Problema ao rodar script no Cron
« Resposta #1 Online: 20 de Novembro de 2011, 20:19 »
Em /var/log você encontra o log do cron, outra coisa, que pode ser útil, é ver saída que o seu programa gera quando rodado no cron. Pode ser feito assim
* * * * *   _seuComando_ > /tmp/seu.log 2>&1
Adiciona isso, esperar rodar e depois olha o "/tmp/seu.log"