#!/bin/sh
LOCAL=/var/local
TMP=/var/tmp
URL=http://um10.eset.com/eset_upd
USER=""
PASSWD=""
WGET="wget --user=$USER --password=$PASSWD -t 15 -T 15 -N -nH -nd -q"
UPDATEFILE="update.ver"
cd $LOCAL
CMD="$WGET $URL/$UPDATEFILE"
eval "$CMD" || exit 1;
if [ -n "`file $UPDATEFILE|grep -i rar`" ]; then
(
cd $TMP
rm -f $TMP/$UPDATEFILE
unrar x $LOCAL/$UPDATEFILE ./
)
UPDATEFILE=$TMP/$UPDATEFILE
URL=`echo $URL|sed -e s:/eset_upd::`
fi
TMPFILE=$TMP/nod32tmpfile
grep file=/ $UPDATEFILE|tr -d \\r > $TMPFILE
FILELIST=`cut -c 6- $TMPFILE`
rm -f $TMPFILE
echo "Downloading updates..."
for FILE in $FILELIST; do
CMD="$WGET \"$URL$FILE\""
eval "$CMD"
done
cp $UPDATEFILE $LOCAL/update.ver
perl -i -pe 's/\/download\/\S+\/(\S+\.nup)/\1/g' $LOCAL/update.ver
echo "Done."
このコードでは、ウイルス対策の定義をダウンロードしています。唯一の問題は、スクリプトを実行するたびにすべてのファイルをダウンロードすることです。 「そのファイルが存在し、同じファイルサイズはそれをスキップしている場合は、」更新bashスクリプト、ファイルチェック、方法?
バッシュのLinux
あなたは強制的に 'wget'を使いますか?これを行う正しい方法は、HTTP接続以外のものがある場合は 'rsync'を使用することです。 – a3nm
私はrsyncが/ http htpasswd /に接続できないと思いますか、間違っていますか? – Cameleon