用shell写的下载文件,某些地方还不是很完善
首先是下载的配置文件,主要是配置ip地址以及下载地址,
配置ip地址的下载路径为固定的,下载到本地会保存到该ip地址的目录下。
而普通的下载路径下载的文件会保存在当前目录下。
下面的是一些公用的函数
下面是下载的主程序download.sh,可以传入一个时间参数进去,表示下载那一天的日志文件,
如:sh download.sh 2009-04-03
以下是解压缩的代码,只解压缩当天下载的文件,这里可以考虑另外写一个:
首先是下载的配置文件,主要是配置ip地址以及下载地址,
配置ip地址的下载路径为固定的,下载到本地会保存到该ip地址的目录下。
而普通的下载路径下载的文件会保存在当前目录下。
218.1.1.1
http://www.canofy.com/test/localhost_access_log.2009-03-30.zip
http://www.canofy.com/test/localhost_access_log.2009-03-31.zip
http://www.canofy.com/test/localhost_access_log.2009-04-01.zip
http://www.canofy.com/test/localhost_access_log.2009-04-02.zip
下面的是一些公用的函数
#************************************#
#
# 公用的函数
#
#************************************#
#下载文件的路径
savepath(){
ip=$1
#time=$2
if [ ! -e "$ip" ] ;then
mkdir $ip
fi
path=`pwd`"/$ip"
echo $path
}
#下载的文件名
filename(){
time=$1
echo "localhost_access_log."$time".zip"
}
下面是下载的主程序download.sh,可以传入一个时间参数进去,表示下载那一天的日志文件,
如:sh download.sh 2009-04-03
#************************************#
# 函数
#************************************#
downurl(){
ip=$1
time=$2
name=`filename $time`
echo "http://"$ip"/test/"$name
}
#**********************************#
# 下载的主程序
#**********************************#
. utilfunc.sh
path="/usr/local/qs/sh/download/"
list=`cat down.config`
time=`date +"%Y-%m-%d"`
#取第一个参数,判断是否是时间,格式如:2009-04-03
if [ `echo $1|grep -E '^20[01][0-9]-(0[1-9]|1[0-2])-[0-3][0-9]'` ] ; then
time=$1
fi
#echo $time
file="down.config"
#echo $list
if [ -n "$file" ]&&[ -e "$file" ]; then
for i in `grep -E -v '^#' $file`;do
if [ -n $i ] ;then
if [ `echo $i|grep -E '^http'` ] ; then
downurls=$i
echo success
echo $i
else
#调用获取下载地址的函数
downurls=`downurl $i $time`
savepath=`savepath $i`
echo $downurls
#echo $savepath
cd $savepath
#echo `pwd`
fi
#判断文件是否已下载
if [ -n "$downurls" ]&&[ ! -e "$downurls" ] ;then
#echo $savepath
#下载文件
wget -c -t2 -T2 -a $path"wget.log" $downurls
#判断是否下载成功,下载不成功则记录到错误日志里面
[ $? -gt 0 ]&&echo $downurls>>$path"error.log"
fi
fi
done
fi
#for i in $list ; do
# echo $i
#done
以下是解压缩的代码,只解压缩当天下载的文件,这里可以考虑另外写一个:
. utilfunc.sh
path="/usr/local/qs/sh/download/"
time=`date +"%Y-%m-%d"`
file="down.config"
if [ -n "$file" ]&&[ -e "$file" ]; then
for i in `grep -E -v '^#' $file`;do
savepath=`savepath $i`
cd $savepath
name=`filename $time`
echo $savepath
echo $name
if [ -n "$name" ]&&[ -e "$name" ] ; then
unzip $name
[ $? -gt 0 ]&&echo $name>>$path"unziperror.log"
fi
done
fi