在cron工作中从gitolite拉出来

时间:2012-07-08 21:17:19

标签: git ssh cron gitolite

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

以下命令适用于非cron上下文:

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

但是如果您的私钥受密码保护,请不要忘记cron会话不会知道您的ssh-agent:有关具体示例,请参阅“Execute rsync command over ssh with an ssh agent via crontab”。 如OP Harold Smith所述,此处keychain是缺失的元素。

答案 1 :(得分:2)

我不知道会出现什么问题

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