Trabalhando com o git via crontab

2

Eu tenho o seguinte script de shell

#!/bin/bash
REPODIR=$HOME/work/repository/
cd $REPODIR
var='git fetch --dry-run 2>&1'
echo $var > $HOME/error.txt

Eu quero executar meu script a cada minuto, então eu edito o crontab (via crontab -e ) para executar o script do usuário atual.

*/1 * * * * /home/nameoftheuser/Documents/report-server.sh

A partir da execução manual - o script funciona corretamente. Mas executando o script do crontab (no error.txt):

fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

O arquivo de script tem 775 direitos. Também estou marcado git status e git config -l e que os comandos funcionam corretamente. git config -l exibe corretamente o URL de origem remota. Ubuntu 13.04 x64 com as últimas atualizações.

O que devo fazer para trabalhar com o git de crontab?

    
por mef_ 11.07.2013 / 06:06

2 respostas

1

O git não pode autorizar ao perguntar remotamente sobre mudanças no mestre, porque quando eu gero o ssh-key, eu o protejo com uma senha.

Então, apenas regenho a chave sem passphrase e o script funciona perfeitamente.

    
por 11.07.2013 / 12:57
0

faça o trabalho de crontab como:

*/1 * * * * nameoftheuser /home/nameoftheuser/Documents/./report-server.sh

ou

*/1 * * * * nameoftheuser sh /home/nameoftheuser/Documents/report-server.sh

Ou se você quiser fazer o que você postou, você precisa adicionar alias no final de /etc/bash.bashrc ao script como:

alias report-server='/home/nameoftheuser/Documents/./report-server.sh'

e, em seguida, você pode adicionar o cron job como:

*/1 * * * * root report-server
    
por 11.07.2013 / 08:21