shell下载日志文件的脚本

用shell写的下载文件,某些地方还不是很完善

首先是下载的配置文件,主要是配置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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值