2

我想设置一个 cron 作业,使生产站点从 gitolite 存储库中提取。

以下命令在非 cron 上下文中工作:

# m     h       dom     mon     dow     command
*       *       *       *       *       cd /home/www/test/autopulling-site/ && /usr/bin/git fetch && /usr/bin/git pull

我怀疑由于 SSH 密钥未在 cron 上下文中正确发送,git 操作不起作用。日志什么也没显示。

有任何想法吗?

4

2 回答 2

3

您需要确保用户实际执行cron.
在这种情况下,它很可能是 root,这意味着您需要确保$HOME(从 运行时cron)确实包含您的.ssh/id_rsa(.pub)文件。

但是,如果您的私钥受密码保护,请不要忘记 cron 会话不会知道您的 ssh-agent:具体示例请参见“通过 crontab 使用 ssh 代理在 ssh 上执行 rsync 命令”。
正如OP Harold Smith所指出的,这keychain是这里缺少的元素。

于 2012-07-08T21:35:23.120 回答
2

我不知道有什么问题

但是,您可以将命令的输出重定向到文件(例如(cd && git pull && ...) &> path/to/file)以查看它正在打印的内容。

于 2012-07-08T21:21:06.967 回答