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.
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?
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