AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 593382
Accepted
robjohncox
robjohncox
Asked: 2014-05-07 05:19:43 +0800 CST2014-05-07 05:19:43 +0800 CST 2014-05-07 05:19:43 +0800 CST

从 cron 运行时从 Bitbucket 拉取 hg 失败

  • 772

我在我的一台服务器上(在用户 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 中运行良好。

cron
  • 2 2 个回答
  • 769 Views

2 个回答

  • Voted
  1. Best Answer
    tom-hd
    2014-05-07T05:29:28+08:002014-05-07T05:29:28+08:00

    尝试明确指定 ssh 命令,例如

    hg pull -e 'ssh -i /location/of/key'
    

    Cron 使用最小的 shell 运行,因此无法访问您的 ssh-agent 进程,因为未设置 SSH 环境变量。

    • 4
  2. user9517
    2014-05-07T05:38:45+08:002014-05-07T05:38:45+08:00

    尝试将以下内容添加到您的 ~/.ssh/config 文件中

    Host example.com
    IdentityFile ~/.ssh/id_bitbucket
    

    告诉 ssh 为相关服务器使用不同的密钥。

    • 1

相关问题

  • 每 4 小时运行一次 cron 的正确语法是什么?[复制]

  • 用于 mysql 数据库清理和备份的 crontab

  • Windows cron 作业

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • crontab ifconfig 什么都不输出

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve