Crontab para fazer o backup do diretório

0

Então, eu tenho isso no meu crontab -e

0 0 * * * /opt/www/backup.sh

E no arquivo, tenho o seguinte:

#!/bin/bash
FILENAME=$(date +%Y%m%d).tar.gz
tar zcf backups/$FILENAME f

O arquivo está localizado em /opt/www

Mas o backup não é criado de jeito nenhum. Se eu executar backup.sh manualmente, ele será executado e criará o backup do diretório f como deveria.

Estou usando o Debian 7.8.

    
por Didc 09.04.2015 / 14:50

2 respostas

2

O diretório atual (funcionando) provavelmente não está definido como / opt / www quando o cronjob é iniciado. Você pode configurá-lo em seu script backup.sh antes da linha tar... :

cd /opt/www

ou você pode usar o caminho completo na linha de tar:

tar zcf backups/$FILENAME /opt/www/f

Também posso aconselhar o uso de um caminho completo para backups/$FILENAME

    
por 09.04.2015 / 15:05
0

Quando corntab executa código, ele é executado a partir do caminho relativo a partir do seu diretório inicial.

Correção fácil: você pode usar o caminho de diretório absoluto (iniciando em / ) no seu script.

Outro método: use 'path_dir' no seu código para portabilidade.

path=$(readlink -f $0)                                       
path_dir=${path%/*}
    
por 09.04.2015 / 15:08

Tags