手で実行すると、これは正常に機能します。
#!/bin/bash
eval `ssh-agent`
ssh-add
/usr/bin/scp me@server:~/file ./
exit 0
ただし、cron が実行されるとき、ファイルは決して変更されません。sshキーが正しいことはわかっています-それをに置き換えるscp
と、ssh
正常に動作します。
ファイルを cron スクリプトとして scp する代わりに、このプロセスに rsync を使用することを検討することもできます。
cronは通常rootとして実行されますが、このスクリプトをrootとしてテストして、sshキーがrootが検索する正しい場所にあることを確認しましたか?または、ユーザープロファイルにsshkeysがありますか?
実行しているバージョンはわかりませんが、Snow Leopard では cron ジョブがユーザーとして実行されます (cronwhoami
スクリプトで確認してください) ... 少なくともユーザーが現在ログインしている場合。