criar backup do diretório

2

Eu gostaria de criar um backup do diretório usando o cron. Eu escrevi o seguinte comando:

cd path && sudo zip -r "backup-$(date +"%Y-%m-%d").zip" git/ && sudo mv "backup-$(date +"%Y-%m-%d").zip" /backup/

quando eu chamo de linha de comando, então está tudo bem. Mas quando eu colocá-lo para o cron, então não funciona. Log contém apenas parte deste comando e nada mais. O que devo fazer?

Conteúdo do Crontab:

* * * * * cd path && zip -r "backup-$(date +"%Y-%m-%d").zip" git/ && mv "backup-$(date +"%Y-%m-%d").zip" /backup /

    
por szaman 25.02.2013 / 15:17

2 respostas

1

Conforme solicitado, movo isso para uma resposta:

Coloque os comandos que você deseja executar em um arquivo .sh , por exemplo:

1. vi test.sh

cd path && sudo zip -r "backup-$(date +"%Y-%m-%d").zip" git/ && sudo mv "backup-$(date +"%Y-%m-%d").zip" /backup/

Salvar e sair.

Executar em um console

2. chmod +x test.sh

Chame o arquivo fron cron com a periocidade desejada:

3. crontab -e

#Run every hour
0 * * * * /path/to/file/test.sh

Certifique-se de que o usuário que usa o cron para executar o arquivo tenha permissões para executar o arquivo.

    
por LnxSlck 26.02.2013 / 16:58
1

Isso acontece porque (crontab manpage ):

  

A parte inteira do comando da linha, até uma nova linha ou%   caractere, será executado por / bin / sh ou pelo shell especificado em   a variável SHELL do arquivo crontab. Porcentagem-sinais (%) no   comando, a menos que tenha escapado com barra invertida (), será alterado para   caracteres de nova linha, e todos os dados após o primeiro% serão enviados para o   comando como entrada padrão.

Como você está usando % no seu comando backup, "você deve colocar isso em um arquivo .sh, chmod +x file , e depois chamar esse arquivo do cron", como sugerido por LnxSlck .

    
por Eric Carvalho 26.02.2013 / 17:24