一、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. !是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。
转载于:https://blog.51cto.com/zzxtbl/1718352