我想设置一个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操作不起作用。日志没有显示任何内容。
有什么想法吗?
答案 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
)以查看其打印内容。