我已經將這個腳本放在一起,每天更新一個分叉的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中完成了主機位。現在它工作了!謝謝 – 2009-11-04 03:11:40