我已经将这个脚本放在一起,每天更新一个分叉的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