【问题标题】:OS X + Crontab: How do you run SCP via cron?OS X + Crontab:你如何通过 cron 运行 SCP?
【发布时间】:2011-05-02 05:32:08
【问题描述】:

当我手动运行它时效果很好:

#!/bin/bash
eval `ssh-agent`
ssh-add
/usr/bin/scp me@server:~/file ./
exit 0

但是,当 cron 运行时,文件永远不会被触及。我知道 ssh 密钥是正确的 - 将 scp 替换为 ssh 并且它运行良好。

【问题讨论】:

  • 我建议您指定ssh-agentssh-add 的完整路径,就像您对scp 一样。如果没有别的,这是一种很好的安全实践。
  • 这是什么scp 命令?至少其中一个参数应遵循user@host:pathhost:path 模式。
  • 我的错,在简化脚本时忽略了这一点。

标签: macos bash cron scp


【解决方案1】:

cron 通常以 root 身份运行,您是否以 root 身份测试过此脚本以确保 ssh 密钥位于 root 查找的正确位置?或者您的用户个人资料中有您的 sshkey?

【讨论】:

  • 我的印象是他们以用户身份运行,但我错了!使用 sudo 生成密钥并推动该密钥解决了问题。谢谢!
【解决方案2】:

您也可以考虑在此过程中使用 rsync,而不是将文件作为 cron 脚本进行 scp。

【讨论】:

    【解决方案3】:

    不确定您正在运行什么版本,但在 Snow Leopard 中,cron 作业以用户身份运行(在您的 cron'd 脚本中检查whoami)......至少在用户当前登录时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 2011-07-04
      • 1970-01-01
      • 2017-07-17
      • 2016-11-03
      • 2016-10-01
      • 1970-01-01
      相关资源
      最近更新 更多