shell 执行ftp的动作和日志合并

一、ftp根据日期下载当前的文件

#!/bin/bash
date=` date +%Y%m%d`
ftp -n <<!
open 192.168.10.14
user zzx Z@123456
binary
lcd /opt/zzx
prompt
mget bj.log-$date.txt
close
bye


二、根据日志上传当前的文件

#!/bin/bash
date=` date +%Y%m%d`
ftp -n <<!
open 192.168.10.14
user zzx Z@123456
binary
lcd /opt/zzx
prompt
mput bj.log-$date.txt  //mput 上传文件
close
bye


三、多及目录上传下载

#!/bin/bash
date=` date +%Y%m%d`
ftp -n <<!
open 192.168.10.14
user zzx Z@123456
binary
cd /one
lcd /opt/zzx
prompt
mput bj.log-$date.txt
cd /two
lcd /opt/zzx
mput bj.log-$date.txt
close
bye
!



四、多及目录日志整合

#!/bin/bash
date=` date +%Y%m%d`
one=/opt/log/coutlogs/zzxweb1/201511
two=/opt/log/coutlogs/zzxweb2/201511
gunzip $one/bj.log-$date.gz
gunzip $two/bj.log-$date.gz
touch /opt/tiandaolog/count/bj.log-$date
NewLog=/opt/bj/count
for log in bj.log-$date
  do
    sort -m -t " " -k 4 -o  $NewLog/$log $one/$log $two/$log
done


五、升级脚本整合脚本

#!/bin/bash
date=` date +%Y%m%d`
yue=` date +%Y%m`
one=/opt/zzx/coutlogs/1/$yue
two=/opt/zzx/coutlogs/2/$yue
NewLog=/opt/zzx/count
logs=zzx.log-$date
if  [ ! -d "$one" ]||[ ! -d "$two" ] ; then
mkdir -p "$one" "$two"
else
if [ ! -f "$one/$logs.gz" ]||[ ! -f "$two/$logs.gz" ] ; then
ftp -n <<!
open 1192.168.10.12
user zzx Z@123456
binary
cd /1
lcd $one
prompt off
mget bj.log-$date.gz
bell
cd /2
lcd $two
mget bj.log-$date.gz
close
bye
!

else
gunzip -c $one/zzx.log-$date.gz >$one/$logs
gunzip -c $two/zzx.log-$date.gz >$two/$logs
touch /opt/zzx/count/zzx.log-$date
for log in zzx.log-$date
  do
    sort -m -t " " -k 4 -o  $NewLog/$log $one/$log $two/$log
done
fi
fi
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.zzxtbl.top.com
rm -f $NewLog/bj.log-$date
rm -f $one/bj.log-$date
rm -f $two/bj.log-$date


计划任务crontab -e 5点:00执行
vi /etc/crontab
0 5 * * * * root /opt/ftpmput.sh


小结:把以上脚本另存为文件加入到crontab中即可实现ftp自动上传、下载文件。

注解:
1. -n 不受.netrc文件的影响。(ftp默认为读取.netrc文件中的设定)
2. << 是使用即时文件重定向输入。
3. !是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。

你可能感兴趣的:(shell,执行ftp的动作和日志合并)