当我手动运行它时,这很好用:
#!/bin/bash
eval `ssh-agent`
ssh-add
/usr/bin/scp me@server:~/file ./
exit 0
但是,当 cron 运行时,文件永远不会被触及。我知道 ssh 密钥是正确的 -scp
用 an替换它ssh
,它运行良好。
您还可以考虑在此过程中使用 rsync,而不是将文件作为 cron 脚本进行 scp。
cron 通常以 root 身份运行,您是否以 root 身份测试了此脚本以确保 ssh 密钥位于 root 查找的正确位置?或者你的用户资料中有你的 sshkeys 吗?
不确定您正在运行什么版本,但在 Snow Leopard 中,cron 作业以用户身份运行(whoami
在您的 cron'd 脚本中检查)......至少在用户当前登录时。