【发布时间】:2009-11-04 11:01:55
【问题描述】:
我把这个脚本放在一起,每天更新一个分叉的 Github 存储库的文件夹。如果我从提示符中调用它,它运行良好,但是当它作为 cron 作业运行时,我无法弄清楚如何让它可靠地利用我的 id_rsa。 eval 'ssh-agent' 试图做到这一点,但似乎没有任何积极影响。
#!/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
一般来说,这可能是一种效率极低的方法,但它确实有效,但我从未见过。如果我能让它使用我的信誉,我会很高兴。
【问题讨论】:
标签: bash scripting ssh cron github