Crontab diário com hg, git e svn

0

Olá, fiz um script que atualiza alguns repositórios do git merc e do svn e atualiza um repositório do git. O script funciona manualmente mas não funciona no crontab, aqui está o script:

#!/bin/bash
cd /var/gitrepo/addons/addonskins && /usr/bin/git pull
cd /var/gitrepo/addons/aurora && /usr/bin/git pull
cd /var/gitrepo/addons/bartender && /usr/bin/git pull
cd /var/gitrepo/addons/dbm && /usr/bin/git pull
cd /var/gitrepo/addons/elvui && /usr/bin/git pull
cd /var/gitrepo/addons/elvui_enhanced && /usr/bin/git pull
cd /var/gitrepo/addons/icehud && /usr/bin/git pull
cd /var/gitrepo/addons/kuinameplates && /usr//bin/git pull
cd /var/gitrepo/addons/xct+ && /usr/bin/git pull
cd /var/gitrepo/addons/kuinameplates && /usr/bin/git pull
cd /var/gitrepo/addons/postal && /usr/bin/svn update
cd /var/gitrepo/addons/recount && /usr/bin/svn update
cd /var/gitrepo/addons/rsa && /usr/bin/svn update
cd /var/gitrepo/addons/skada && /usr/bin/svn update
cd /var/gitrepo/addons/prat && /usr/bin/hg pull
cd /var/gitrepo/addons/askmrrobot && /usr/bin/hg pull
cd /var/gitrepo/addons/prat && /usr/bin/hg pull
cd /var/gitrepo/addons && /usr/bin/git add .
cd /var/gitrepo/addons && /usr/bin/git commit -m 'Automatic update'
cd /var/gitrepo/addons && /usr/bin/git push
cd /var/gitrepo/addons && touch done.txt

Ele cria o arquivo done.txt, mas parece não executar nenhuma das atualizações do svn pelo menos

    
por stokbaek 11.09.2014 / 18:09

1 resposta

2

Seria útil se você nos mostrasse seu comando crontab.

Alguns ponteiros primeiro.

Use caminhos completos ao escrever trabalhos agendados: por exemplo.

03 05 * * * /bin/bash /home/user/myScript.sh

Também canalize a saída para um arquivo de log para você ver o prazer. Ambos stdout e stderr. por exemplo.

03 05 * * * /bin/bash /home/user/myScript.sh > ~/log/myScript.log 2>&1

Veja se o trabalho Cron foi executado no log do sistema

grep CRON /var/log/syslog

Estes serão úteis durante a depuração. Agora para você pergunta sobre git e svn

Para fazer o SVN funcionar, usei este guia útil (Capture aqui para referência):

First, install the keychain program. Second, add this to your ~/.bash_profile (we don't need this to run for every terminal, just on login):

# Use keychain to keep ssh-agent information available in a file
/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/${HOSTNAME}-sh
Tweak as needed for the location of your private SSH keys. Also, make sure your .bash_profile is actually invoked at start-up. When logging into Ubuntu graphically, this may not be the case unless it's sourced in .profile.

Third, add this to the cron job script (if your cron job is a Python program, just wrap it in a shell script):

source $HOME/.keychain/${HOSTNAME}-sh

Quanto ao SVN, não consegui fazê-lo funcionar sozinho. Tropeçou em seu post quando eu estava procurando a mesma coisa. Vai atualizar minha resposta se eu encontrar alguma coisa. Atualização: Você pode usar os arquivos de configuração em ~ / .subversion para armazenar sua senha svn

    
por 03.11.2014 / 17:39