O script shell não está sendo executado com o cronjob

0

Estou usando o PUTTY para acessar o servidor. Eu posso despejar os bancos de dados com o seguinte comando:

/usr/bin/mysqldump --all-databases | /bin/gzip > Backup_DB/alldatabases_test.sql.gz

Quando eu estou executando o script da raiz, o arquivo é despejado na pasta especificada:

root@server1 [~]# sh mybackup.sh
root@server1 [~/Backup_DB]# ls -a
./  ../  alldatabases_test.sql.gz

No entanto, quando eu configuro isso como um cronjob, não é nada:

*/2 *   *   *   *   sh mybackup.sh

Outros cronjobs estão funcionando bem.

EDITAR

Portanto, executar o script não está funcionando, mas agradeço sua ajuda. Meu objetivo final é executar o script de um lugar onde todos os meus outros cronjobs estejam e criar o backup em uma pasta à qual eu tenha acesso ftp. É por isso que adicionei um cronjob:

*/2 *   *   *   *   sh /home/mysite/www/cronjobs/mybackup.sh

com o conteúdo:

/usr/bin/mysqldump --all-databases | /bin/gzip > /home/mysite/www/cronjobs/alldatabases.sql.gz

Isso também não está funcionando. Não consegui encontrar o alldatabases.sql.gz na pasta / cronjobs. Os caminhos estão errados?

    
por erdomester 20.04.2014 / 10:41

1 resposta

1

Primeiro, você precisa do caminho completo para o script como @attomos disse . A maneira mais fácil de obter isso é executar cd relative/path/to/script/directory e, em seguida, pwd ou echo "$PWD" para obter o diretório atual.

Segundo, o caminho Backup_DB/alldatabases_test.sql.gz dentro do script agora é relativo à raiz do sistema , então o script tenta salvá-lo em /Backup_DB/alldatabases_test.sql.gz , o que provavelmente foi Sem intenção. Você precisa tornar esse caminho absoluto também : /root/Backup_DB/alldatabases_test.sql.gz .

Você deve ver alguma saída de erro disso em /var/log/cron .

    
por 20.04.2014 / 11:12