2012-07-17 108 views
1

我試圖運行一個計劃的cron作業,使用crontab從linux中定期運行命令git svn fetch。從Crontab調用GIT SVN FETCH

,這裏是我的crontab是什麼樣子:

1 #!/bin/bash 
    2 PATH="/usr/local:/usr/local/bin:/bin" 
    3 HOME="/home/person1/src" 
    4 
    5 * * * * * /home/person1/src/autofetch.sh 
    6 0 9,13,17 * * 1-5 /home/person1/src/autofetch.sh 

我autofetch.sh壓根兒就命令:「混帳SVN取」

我覺得我越來越近,因爲它發現git的命令以及它能夠在可以使用git的環境中運行的事實。我原來有問題的地方會說:

Already at toplevel, but .git not found 

但現在我越來越發送到我的郵箱的linux一個奇怪的身份驗證錯誤:

X-Cron-Env: <PATH=/usr/local:/usr/local/bin:/bin> 
X-Cron-Env: <HOME=/home/person1/src> 
X-Cron-Env: <SHELL=/bin/sh> 
X-Cron-Env: <LOGNAME=person1> 
X-Cron-Env: <USER=person1> 

Authentication realm: <http://subversion.server1.com:80> Subversion repository 
Password for 'person1': 
Authentication realm: <http://subversion.server1.com:80> Subversion repository 
Username: Use of uninitialized value in chomp at /usr/local/libexec/git-core/git-svn line 4322. 
error: git-svn died of signal 11 

任何人知道該怎麼辦?或之前使用crontab運行預定的git命令?

注:

  • 我已經從Subversion服務器,這就是混帳SVN進場運行一個git客戶端。
  • 我的Git倉庫,在/ home/PERSON1/src目錄
  • 我可以從終端運行 「混帳SVN取」 只要只因爲我在/ home/PERSON1/src目錄

回答

1

你可能不想將你的HOME設置爲/ home/person1/src。 svn使用$ HOME查找其緩存的密碼,除非將HOME設置爲/ home/person1,否則不會。如果你想讓你的cron在src目錄下運行,只需在腳本的頂部放一個「cd $ HOME/src」命令即可。

+0

謝謝,我刪除了HOME路徑,並刪除了autofetch.sh以使用:「cd src; git svn fetch」,而且沒有引號,它就起作用了!你的回答給我提供了一個線索來做到這一點。我無法將cd命令放在頂部,因爲在嘗試保存crontab後出錯。 – sksallaj 2012-07-24 22:53:07