Cronjob para empurrar o Backup do MongoDB via git

0

Tarefa:
Crie um Cronjob que execute um script bash uma vez a cada noite. O script bash deve fazer um backup do mongoDB e enviá-lo para um Git Repo.

Por isso, criei um cronjob como usuário root por meio do comando crontab -e :

#!/bin/bash
SHELL=/bin/bash
USER=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/root
HOME=/root

0 2 * * * /path/script.sh > /path/script.log

Este é o script que deve ser executado:

BAK="/path"
#MONGO="/usr/bin/mongo"
#MONGODUMP="/usr/bin/mongodump"
#GIT="/usr/bin/git"

echo "starting backup"
echo $BAK
/usr/bin/mongodump --username=myusername --password=mypassword --db=mydatabase --out=$BAK$
echo "backup created"
/usr/bin/git add .
/usr/bin/git commit -m "backup from 'date +'%Y_%m_%d''"
echo "committed"
/usr/bin/git push -u origin master
echo "pushed backup. done"

Resultado:
Os backups estão sendo criados, mas não são enviados para o repositório. Executar o script manualmente envia os backups conforme desejado. O Log inclui apenas todos os ecos do script.

    
por Martin Golpashin 16.11.2015 / 13:14

1 resposta

0

Você está no diretório correto ao emitir os comandos git ? Em outras palavras, quando o comando git add . é executado, ele sabe de algum repositório?

Tente cd no diretório BAK do seu script usando:

cd "$BAK"

Além disso, tente capturar a saída do erro adicionando 2>&1 à linha do cronjob.

Outra coisa que noto é o uso de $BAK$ no parâmetro --out= . Parece um pouco como %VAR% no Windows para mim ... Tem certeza de que deseja produzir para $BAK$ ou você quer dizer $BAK ?

Por fim, tem certeza de que deseja executar este script a cada minuto entre as 2:00 e as 3:00?

    
por 16.11.2015 / 13:32

Tags