Como se auto consolidar no meu repositório git usando o cron?

3

Eu examino muitas respostas sobre este assunto , mas algo está errado aqui, deixe-me explicar. Eu crio este script, para tornar meu cron cleaner:)

#!/bin/bash

cd /home/valter.silva/Development/git/valter/ 
/usr/bin/git add -A 
/usr/bin/git commit -am "update 'date'"
/usr/bin/git push

Em seguida, adicione-o ao meu cron, valter.silva's cron , não meu root cron :

00 * * * * /home/valter.silva/Development/git/valter/scripts/git/sync.sh

Reinicie meu cron

sudo service cron restart
cron stop/waiting
cron start/running, process 6047

Aaand .. nada acontece ..

Mas se eu executar meu script na linha de comando, tudo funcionará bem. Eu sei que, às vezes, se você não colocar todo o caminho nos scripts cron não funcionará corretamente. E que eu deveria usar o meu cron para fazer isso, não o cron do root.

Então, o que há de errado aqui? Alguma ideia ? Obrigada!

udpate

Eu sigo a sugestão de Terdon para registrar a operação, mas parece que está tudo bem, mas não o processo push . Por quê?

[master ad5d001] update Fri Aug  9 11:00:01 BRT 2013
 9 files changed, 1224 insertions(+), 364 deletions(-)
 create mode 100644 scripts/centreon/4.answers~
 create mode 100644 scripts/centreon/6.importing database
 create mode 100644 scripts/centreon/6.importing database~
 create mode 100755 scripts/centreon/7.upgrade.sh
 create mode 100755 scripts/centreon/7.upgrade.sh~
 create mode 100644 scripts/centreon/8.answers
 create mode 100644 scripts/centreon/8.answers~
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
    
por Valter Silva 09.08.2013 / 13:12

3 respostas

1

Eu não sou um mestre de git, mas faço alguns testes de git no meu repositório local de teste de git. Quando eu executo o git push, a saída é:

fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

git remote add <name> <url>

and then push using the remote name

git push <name>

P: Você configurou o repositório remoto usando o comando git remote add ? Se sim, tente executar git push com o nome do repositório remoto. Se não, configure um, ou use o git push com o url do repositório remoto na linha de comando ( git push git://host.xz[:port]/path/to/repo.git/ ).

    
por 10.08.2013 / 07:26
1

Para adicionar, simplifiquei os links, para que seja mais legível para alguém que procura uma resposta com base em post do blog de huti

Então, para o seu sync.sh eu adicionaria -u origin master para o push:

#!/bin/bash

cd /home/valter/git-project/
/usr/bin/git add -A 
/usr/bin/git commit -am "Daily update"
/usr/bin/git push -u origin master

Certifique-se de que o script pode ser executado por bash:

sudo chmod 765 ~/sync.sh

Em seguida, você pode adicionar uma linha ao /etc/crontab :

sudo nano /etc/crontab # To edit the file
01 18  *  *  * root  /home/valter/sync.sh

Certifique-se de reinicializar para que o cron job tenha efeito. Agora, seu script será executado todos os dias às 18:01. Se não houver modificação, nada será empurrado embora.

    
por 10.06.2018 / 18:26
0

Por que você espera que algo aconteça? Você disse a cron para executar seu script a cada hora, na hora. Se você modificou seu crontab em, por exemplo, 13:02, nada vai acontecer até as 14:00.

Tente aguardar um pouco até que o tempo atinja XX:00 , seu script seja executado. Ah, e não há necessidade de reiniciar o cron , ele irá ler o novo crontab e executá-lo da próxima vez que ele for executado.

Se você esperou o tempo suficiente e seu script ainda não está sendo executado, tente redirecionar a saída de erro para verificar se algo está acontecendo:

00 * * * * /home/valter.silva/Development/git/valter/scripts/git/sync.sh 2> /home/valter.silva/error.txt

Também tente configurar um cron job fictício para ver se isso funciona:

00 * * * * date > /home/valter.silva/date.txt
    
por 09.08.2013 / 14:08