Git pull请求不能与cronjob一起工作
我对编码非常陌生,有人能帮助我如何使用cron作业成功地执行Git pull请求不能与cronjob一起工作,git,shell,cron,Git,Shell,Cron,我对编码非常陌生,有人能帮助我如何使用cron作业成功地执行git pull 我确实编写了一个具有git pull的Shell脚本,如下所示,当我在终端上运行Shell脚本时,它确实可以工作 #!/bin/bash cd /Users/xplain/testing/UI git pull cd testing python -m unittest XplainTestRunner.XplainTestRunner 但我的cron工作不起作用。我的cron工作如下 11 16 * * * /U
git pull
我确实编写了一个具有git pull的Shell脚本,如下所示,当我在终端上运行Shell脚本时,它确实可以工作
#!/bin/bash
cd /Users/xplain/testing/UI
git pull
cd testing
python -m unittest XplainTestRunner.XplainTestRunner
但我的cron工作不起作用。我的cron工作如下
11 16 * * * /Users/xplain/automation.sh >> /Users/xplain/script_output.log 2>&1
有人能帮我一下吗?您是如何在您的机器上以用户身份手动运行
git
?您是否有连接到SSH密钥的密码短语?如果是这样,当cron作业运行时,它将提示输入密码短语,但它不是交互式任务,因此将失败
相关的,我相信您使用Mac OS X是因为脚本中的/Users/
文件路径:
/Users/xplain/
实际上,您可能已经将我们的SSH密钥密码短语保存在您的用户密钥链中。据我所知,除非您实际登录,否则无法访问。如果您在用户下运行cron作业,我不相信该任务将能够访问用户密钥链,因此您的脚本将再次失败
这说明了如何在Mac OS X中使用launchd
而不是cron
来识别钥匙链设置。所以这可能是一个值得探索的问题
另一个想法是尝试为git
和python
添加完整路径:
#!/bin/bash
cd /Users/xplain/testing/UI
/usr/bin/git pull
cd testing
/usr/bin/python -m unittest XplainTestRunner.XplainTestRunner
我使用的是/usr/bin/git
和/usr/bin/python
,因为它们安装在标准的MacOSX上。但您可以使用确定完整路径,如下所示:
which git
对我来说,它返回:/usr/bin/git
which python
对我来说,它返回:/usr/bin/python
是您的自动化.sh
脚本标记为可执行文件吗?@GregHewgill是的!“我确实编写了一个具有git pull的Shell脚本,如下所示,当我在终端上运行Shell脚本时,它确实可以运行。”好吧,可以将一个不可执行的Shell脚本作为参数传递给sh
,这里没有显示。@GregHewgill检查我的答案。根据原始海报的用户路径/user/xplain/
,这似乎是在Mac OS X上。因此,如果需要钥匙链访问,则除非用户使用launchd
,否则无法使用。但运行git
和python
也可能需要完整的二进制路径。