私は、このスクリプトをまとめてフォークされたGithubリポジトリのフォルダを毎日更新しました。私はプロンプトから呼び出すとうまく動作しますが、cronジョブとして実行されたときにid_rsaを確実に利用する方法を見つけることができます。 eval 'ssh-agent'
はこれを行う試みですが、肯定的な影響は見られません。cronジョブを実行しているbashスクリプトからSSH鍵にアクセスする
#!/bin/sh
LOGPATH=log.txt
eval 'ssh-agent'
cd /path/to/update/folder
echo "-------START UPDATE-------">$LOGPATH
echo "Updating repos:">>$LOGPATH
date "+%F %T">>$LOGPATH
COUNT=1
find . -maxdepth 1 -type d | while read dir; do
cd "$dir"
LEN=$"${#dir}"
if [ $LEN != "1" ]
then
echo "*********">>$LOGPATH
echo "$COUNT. " ${dir:2}>>$LOGPATH
/usr/local/bin/git pull upstream master>>$LOGPATH 2>> $LOGPATH
/usr/local/bin/git push origin master>>$LOGPATH 2>> $LOGPATH
let COUNT=COUNT+1
fi
cd "$OLDPWD"
done
echo "-------END UPDATE-------">>$LOGPATH
exit 0
これはおそらく、一般的にはプロセスを実行するにはひどく非効率的な方法ですが、動作しています。もし私が信用状を使うことができれば、私は喜ぶだろう。
私はssh-addを実行したことがありませんでしたが、私はOS X上にいるので、私の推測は私のために起こっています。パスフレーズのない鍵を作成してssh-addを使うと、そのトリックが完了したようです。 Gregが提案したように.ssh/configのホストビットもやった。今それは動作します!ありがとう –