网站建设小,阿里巴巴 网站建设,绍兴网站定制公司,阳江网红文章目录一、需求文档说明二、脚本解释/说明三、脚本内容3.1. 案例脚本3.2. 案例脚本升级一、需求文档说明
序号要求说明①协议使用ftp协议远程下载②文件类型.zip③文件名ac_UPpp④远程下载目录用户根目录(不需要切换目录)⑤本服务器下载存放目录/blacklist/xmldata/Lists
二…
文章目录一、需求文档说明二、脚本解释/说明三、脚本内容3.1. 案例脚本3.2. 案例脚本升级一、需求文档说明
序号要求说明①协议使用ftp协议远程下载②文件类型.zip③文件名ac_UPpp④远程下载目录用户根目录(不需要切换目录)⑤本服务器下载存放目录/blacklist/xmldata/Lists
二、脚本解释/说明
脚本拆解释义说明执行命令①日志文件名拼接fname存放全部日志目录随机生成以日期规则.log结尾的文件②错误日志拼接elog存放异常日志目录随机生成以日期规则.log结尾的文件③sftp连接格式lftp -u 用户名,密码 ftp://ip地址:端口 EOF $fname 21④进入到指定目录打开本机目录用lcd 打开远程目录用cd⑤下载指定文件mget 文件名⑥下载指定类型文件mget *.gz 或者 mget *.zip 或者 mget *.tar⑦下载指定文件规则例如下载以dir开头并且以.f 的全量文件 或者.i结尾的增量文件mget dir.*.i mget dir.*.f⑧异常日志输出把常见异常归纳一下遇到后将异常信息输出到指定目录下面文件名按照一定规则随即自动生成
三、脚本内容 前提安装lftp yum install lftp 3.1. 案例脚本
#!/bin/bash
fdate$(date %Y%m%d%H%M%S)
flog/app/blacklist/logs/accuitydownload-
elog/app/blacklist/logs/errors-fname$flog$fdate.log
ename$elog$fdate.loglftp -u ftpuser,123456 ftp://192.168.0.110:21 EOF $fname 21
set xfer:clobber on
lcd /app/data
cd /send/ods/20201226
mget UPIDGWL.ZIP
by
EOFif grep -i Login failed $fname /dev/null
then
echo ERROR: Login failed $ename
fi
if grep -i Not connected $fname /dev/null
then
echo ERROR: Cannot connect to the destination $ename
fi
if grep -i No such file $fname /dev/null
then
echo ERROR: Cannot change directory. No such file or directory. $ename
fi
if grep -i No such directory $fname /dev/null
then
echo ERROR: Cannot change remote directory. No such file or directory. $ename
fi
if grep -i File or Directory does not exist $fname /dev/null
then
echo ERROR: Cannot transfer. File or Directory does not exist $ename
fi3.2. 案例脚本升级
创建conf文件夹用来存放配置文件 创建sftp_conn.conf配置文件内容分隔符 |
mkdir conf
vim ftp_conn.conf
#内容不做限制
192.168.0.110|ftpuser|123456|/send/ods/|21|升级后的脚本
#!/bin/bash
fdate$(date %Y%m%d%H%M%S)
flog/app/blacklist/logs/accuitydownload-
elog/app/blacklist/logs/errors-fname$flog$fdate.log
ename$elog$fdate.loglinecat ./conf/ftp_conn.conf
hostecho $line|awk -F | {print $1}
usernameecho $line|awk -F | {print $2}
passwordecho $line|awk -F | {print $3}
remote_pathecho $line|awk -F | {print $4}
sftp_portecho $line|awk -F | {print $5}exec_datedate -d 0 days ago %Y%m%d
local_datadir/app/data#echo $line
#echo $host
#echo $username
#echo $password
#echo $remote_path
#echo $exec_date
#echo $local_datadirlftp -u $username,$password ftp://$host:$sftp_port EOF $fname 21
set xfer:clobber on
lcd $local_datadir
cd $remote_path/$exec_date
mget UPIDGWL.ZIP
by
EOFif grep -i Login failed $fname /dev/null
then
echo ERROR: Login failed $ename
fi
if grep -i Not connected $fname /dev/null
then
echo ERROR: Cannot connect to the destination $ename
fi
if grep -i No such file $fname /dev/null
then
echo ERROR: Cannot change directory. No such file or directory. $ename
fi
if grep -i No such directory $fname /dev/null
then
echo ERROR: Cannot change remote directory. No such file or directory. $ename
fi
if grep -i File or Directory does not exist $fname /dev/null
then
echo ERROR: Cannot transfer. File or Directory does not exist $ename
fi(企业内部需求实战_03)_shell脚本 sftp协议下载文件 https://gblfy.blog.csdn.net/article/details/103875246