我在我的一台服务器上(在用户 rob 下)有一个 Bitbucket 存储库的本地副本,并且我创建了一个每小时在 cron 中运行的脚本,并尝试提取和更新本地副本。我遇到的问题是hg pull
失败了,即使当我在 cron 之外遵循相同的程序时它也可以正常工作。
我设置了一个用于以正常方式访问 Bitbucket 的 ssh 密钥(即遵循 Bitbucket 文档中的指南),然后最初克隆了 repo
cd /home/rob
hg clone ssh://[email protected]/robjohncox/tools
更新脚本/home/rob/bin/update_tools.sh
为:
#! /bin/bash
cd /home/rob/tools
hg pull >> /tmp/update_tools.log
hg update >> /tmp/update_tools.log
用户 rob 的 crontab 是:
0 * * * * /home/rob/bin/update_tools.sh
一切都非常简单。但是,当作业运行时,我们看到调用hg pull
失败并输出
remote: Permission denied (publickey).
有谁知道为什么会发生这种情况-我需要采取其他步骤以便在 cron 运行时可以访问相关的公钥吗?该update_tools.sh
脚本在 shell 中运行良好。