Por que essa tarefa do cron com o shell script está falhando? [duplicado]

1

Eu criei um cron job para fazer um backup diário, para armazená-lo no diretório / backups

Este diretório de backups está localizado na raiz [/] do servidor VPS e é uma partição separada de backups fornecida pelo nosso host VPS. IE é armazenado em um disco diferente.

Então, criei um pequeno script de shell para executar backups e armazená-los lá.

#!/bin/sh
mysqldump --all-databases | gzip > /backups/dbbackup-'date +%Y-%m-%d'.sql.gz

Isso cria um backup de .gz com a data anexada. Funciona porque quando eu corro, eu consigo o que eu quero.

Mas eu quero isso em um cron job. Eu editei o crontab e o configurei para rodar às 21h todas as noites.

0 21 * * * /backups/DBBackups.sh

Eu verifiquei o log do cron esta manhã e ele foi executado

Jun 20 21:00:01 973900 CROND[13279]: (root) CMD (/backups/DBBackups.sh)

Mas não há arquivo no diretório / backups.

Onde estou indo errado aqui? Cuspiria um erro em algum lugar que eu não esteja verificando?

Eu ainda sou um iniciante nessas coisas. Mais tarde, gostaria de exportar um banco de dados específico por tabela, pois é difícil trabalhar com um arquivo .sql de 2 gb, caso eu precise dele. Além disso, provavelmente vou atingir algum tipo de tamanho máximo de arquivo em breve. Mas deixe isso para mim. Se alguém puder ajudar a obter esse script funcionando corretamente, isso será muito apreciado.

    
por Xenor 21.06.2013 / 10:02

1 resposta

2

O problema está no seu script DBbackups.sh. Quando o cron roda, provavelmente não tem informação de caminho, certamente não aquela a que você está acostumado, pois ele não aparece a partir do seu shell de login, então você precisa dar caminhos absolutos. O DBbackups.sh deve ser algo como:

#!/bin/sh
BACKUPDIR="/backups"
MYSQLDUMP="/usr/local/mysql/bin/mysqldump"
GZIP="/bin/gzip"
DATE='date +%Y-%m-%d'

${MYSQLDUMP} --all-databases | ${GZIP} > ${BACKUPDIR}/dbbackup-${DATE}.sql.gz

NB: Como sempre, seus caminhos podem ser diferentes, verifique seus caminhos para gzip e mysqldump com

which mysqldump
which gzip
    
por 21.06.2013 / 11:49

Tags