當我手動運行它時工作正常:OS X + Crontab:你如何通過cron運行SCP?
#!/bin/bash
eval `ssh-agent`
ssh-add
/usr/bin/scp [email protected]:~/file ./
exit 0
但是,當cron運行時,文件永遠不會被觸及。我知道ssh鍵是正確的 - 用ssh
替換scp
並運行正常。
當我手動運行它時工作正常:OS X + Crontab:你如何通過cron運行SCP?
#!/bin/bash
eval `ssh-agent`
ssh-add
/usr/bin/scp [email protected]:~/file ./
exit 0
但是,當cron運行時,文件永遠不會被觸及。我知道ssh鍵是正確的 - 用ssh
替換scp
並運行正常。
cron通常以root身份運行,您是否以root身份測試了此腳本以確保ssh密鑰位於root所在的正確位置?或者你的用戶檔案中有你的sshkeys?
我的印象是,他們以用戶身份跑,但我錯了!使用sudo生成密鑰並推動該密鑰解決問題。謝謝! – 2010-10-30 22:52:23
您也可以考慮使用rsync進行此過程,而不是將文件scp作爲cron腳本。
不知道你正在運行的版本,但在雪豹cron作業運行的用戶(與whoami
檢查您cron'd腳本)......至少,當用戶當前已登錄。
我會建議指定'ssh-agent'和'ssh-add'的完整路徑,就像'scp'一樣。如果沒有別的,這是很好的安全實踐。 – 2010-10-29 04:52:42
這是什麼樣的'scp'命令?至少有一個參數應該遵循'user @ host:path'或'host:path'模式。 – mob 2010-10-29 20:50:19
我的不好,忽略了簡化腳本時。 – 2010-10-30 22:51:42