1

我正在尝试使用来自 linux 机器的 crontab 运行计划的 cron 作业,我会在其中定期运行命令 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 只是有命令:“git svn fetch”

我想我已经接近了,因为它找到了 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 命令?

笔记:

  • 我有一个从颠覆服务器运行的 git 客户端,这就是 git-svn 发挥作用的地方。
  • 我的 git 存储库位于 /home/person1/src
  • 只要我在 /home/person1/src 目录中,我就可以从终端运行“git svn fetch”
4

1 回答 1

1

您可能不想将 HOME 设置为 /home/person1/src。svn 使用 $HOME 来查找其缓存的密码,除非您将 HOME 设置为 /home/person1,否则它不会。如果你想让你的 cron 在 src 目录中运行,只需在脚本顶部放一个“cd $HOME/src”命令。

于 2012-07-24T19:32:36.660 回答