(需求实战_01)_shell脚本 ftp协议下载文件

文章目录

          • 一、需求文档说明
          • 二、脚本解释/说明
          • 三、脚本内容
            • 3.1. 案例脚本
            • 3.2. 案例脚本升级

一、需求文档说明
序号要求说明
协议使用ftp协议远程下载
文件类型.zip
文件名ac_UPpp
远程下载目录用户根目录(不需要切换目录)
本服务器下载存放目录/blacklist/xmldata/Lists
二、脚本解释/说明
脚本拆解释义说明执行命令
日志文件名拼接fname存放全部日志目录+随机生成以日期规则.log结尾的文件
错误日志拼接elog存放异常日志目录+随机生成以日期规则.log结尾的文件
sftp连接格式lftp -u 用户名,密码 ftp://ip地址:端口 <<EOF > "$fname" 2>&1
进入到指定目录打开本机目录用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'.log'lftp -u ftpuser,123456 ftp://192.168.0.110:21 <<EOF > "$fname" 2>&1
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"
fi
3.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'.log'line=`cat ./conf/ftp_conn.conf`
host=`echo $line|awk -F "|" '{print $1}'`
username=`echo $line|awk -F "|" '{print $2}'`
password=`echo $line|awk -F "|" '{print $3}'`
remote_path=`echo $line|awk -F "|" '{print $4}'`
sftp_port=`echo $line|awk -F "|" '{print $5}'`exec_date=`date -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" 2>&1
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双绞线传输距离_视频监控系统中布线常用传输线缆分类及制作方法

同轴电缆&#xff1a;同轴电缆同轴电缆可分为两种基本类型&#xff0c;基带同轴电缆和宽带同轴电缆。目前基带是常用的电缆&#xff0c;其屏蔽线是用铜做成的网状的&#xff0c;特征阻抗为75(如RG-8、RG-58等)&#xff1b;宽带同轴电缆常用的电缆的屏蔽层通常是用铝冲压成的&am…

国庆出游,这个银行卡大小的充电宝一定要带

说到充电宝&#xff0c;不知道有没有人跟我有同样的烦恼&#xff1a;5000毫安容量小&#xff0c;不够用。10000毫安容量够用&#xff0c;但又大又笨重&#xff0c;拿在手里充电超累的&#xff0c;还占地方&#xff01;尤其是旅行出差的时候&#xff0c;这种体验更加明显&#x…

HBase运维基础——元数据逆向修复原理

摘要&#xff1a; 鉴于上次一篇文章——“云HBase小组成功抢救某公司自建HBase集群&#xff0c;挽救30T数据”的读者反馈&#xff0c;对HBase的逆向工程比较感兴趣&#xff0c;并咨询如何使用相应工具进行运维等等。总的来说&#xff0c;就是想更深层理解HBase运维原理&#xf…

java并发编程代码示例_java并发编程之同步器代码示例

java并发编程之同步器代码示例发布时间&#xff1a;2020-09-08 16:53:41来源&#xff1a;脚本之家阅读&#xff1a;58作者&#xff1a;Blessing_H同步器是一些使线程能够等待另一个线程的对象&#xff0c;允许它们协调动作。最常用的同步器是CountDownLatch和Semaphore&#xf…

(需求实战_02)_ftp连接下载指定.zip类型文件

文章目录一、需求文档说明二、脚本解释/说明三、脚本内容一、需求文档说明 序号要求说明①协议使用ftp协议远程下载②文件类型.zip③文件名acd_UPIDDGWL④远程下载目录APEP/⑤本服务器下载存放目录/ablacklist/xmldata/Lists/PEP 二、脚本解释/说明 脚本拆解释义说明执行命令…

50多种适合机器学习和预测应用的API,你的选择是?(2018年版本)

摘要&#xff1a; 本文盘点了2018年以来人脸和图像识别、文本分析、自然语言处理、情感分析、语言翻译、 机器学习和预测这几个领域常用的API&#xff0c;读者可以根据自己需求选择合适的API完成相应的任务。对于做工程项目和搞科研的人来说&#xff0c;有现成的模块或工具使用…

谷歌10月15日发布 Pixel 4;高通以31亿美元收购与TDK公司权益;甲骨文、VMware就云技术及支持达成协议……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 荣耀 Play 3&#xff08;图片…

天线巴伦制作和原理_10米段的春天 | 用自制环型天线+改装SDR接收器27MHz采访实录...

&#xff28;&#xff26;部分包括&#xff19;个不同的波段&#xff0c;范围从&#xff11;&#xff0e;&#xff18;&#xff2d;&#xff28;&#xff5a;到&#xff12;&#xff19;&#xff0e;&#xff17;&#xff2d;&#xff28;&#xff5a;&#xff0c;它们通常也称…

学习笔记CB012: LSTM 简单实现、完整实现、torch、小说训练word2vec lstm机器人

摘要&#xff1a; 真正掌握一种算法&#xff0c;最实际的方法&#xff0c;完全手写出来。 LSTM&#xff08;Long Short Tem Memory&#xff09;特殊递归神经网络&#xff0c;神经元保存历史记忆&#xff0c;解决自然语言处理统计方法只能考虑最近n个词语而忽略更久前词语的问题…

(需求实战_03)_shell脚本 sftp协议下载文件

文章目录一、需求文档说明二、脚本解释/说明三、脚本内容3.1. 案例脚本3.2. 案例脚本升级一、需求文档说明 序号要求说明①协议使用sftp协议远程下载②文件类型.zip③文件名UPDATA④远程下载目录PEDP/⑤本服务器下载存放目录/app/xmldata/Lists 二、脚本解释/说明 脚本拆解释…

JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制

接上一篇使用Onvif协议最重要的应用就是对设备进行PTZ云台控制&#xff0c;PTZ控制包含转动、变焦等&#xff0c;这里我们主要讨论常用的转动和变焦(也就是放大缩小)流程要进行设备PTZ控制&#xff0c;我们首先需要获取到设备的Device Service Address和此设备的用户名密码前两…

DataWorks支持PyODPS类型任务

摘要&#xff1a; 昨天&#xff0c;DataWorks推出了PYODPS任务类型&#xff0c;集成了Maxcompute的Python SDK&#xff0c;可在DataWorks的PYODPS节点上直接编辑Python代码操作Maxcompute&#xff0c;也可以设置调度任务来处理数据&#xff0c;提高数据开发效率。昨天&#xff…

vue base64图片不显示_技巧 | word中插入的图片显示不完整怎么办?

已经好久没有更新了&#xff0c;都快忘记有这个公众号存在了~这几个月发生了很多事情&#xff0c;工作上的任务也迟迟没有减轻&#xff0c;之前保持的日记也已经很久没有写了。但是觉得要是没有什么用什么方式将脑袋中时不时飘过的念头记录下来的话&#xff0c;过段时间就会完全…

重磅 | 华为发布绝杀计算战略!投15亿美元打造开放生态,全球最快AI训练集群Atlas 900,绝了!...

戳蓝字“CSDN云计算”关注我们哦&#xff01; 文 | 阿晶、丹丹、王银发于上海华为HC大会现场出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09; 科技的不断发展正逐步加速智能世界的到来。一直&#xff0c;华为致力于提供经济且充裕的算力&#xff0c;力图像使…

python制作圆形按钮_C#圆形按钮,非常漂亮动态

【实例简介】C#圆形按钮&#xff0c;非常漂亮动态 Button,有源代码和例子&#xff0c;这是网上很少有的&#xff0c;兄弟们快下载呀&#xff01;【实例截图】【核心代码】PulseButton└── PulseButton├── Backup│ ├── PulseButton│ │ ├── ClassDiagram1.cd…

(需求实战_04)_定时压缩昨天指定文件并删除

文章目录一、需求文档说明二、脚本设置三、脚本内容一、需求文档说明 序号要求说明①协议使用sftp协议远程下载②文件类型.zip③文件名acd_UPIDDGWL④远程下载目录PEDP/⑤本服务器下载存放目录/ablacklist/xmldata/Lists 二、脚本设置 命令释义说明crontab -e编辑crontab8 0 …

90后实习生,是如何成长为阿里云分布式NoSQL领域专家

摘要&#xff1a; 我是亦征&#xff0c;本名王怀远&#xff0c;现在是阿里云存储服务团队的研发&#xff0c;正值五四青年节&#xff0c;受云栖社区邀请&#xff0c;来分享下自己的成长故事。从5年前第一次进入阿里云实习到如今&#xff0c;我一直都在表格存储TableStore团队&a…

AI新时代-大神教你使用python+Opencv完成人脸解锁(附源码)

摘要&#xff1a; 好吧&#xff0c;伙计们&#xff0c;我回来了。说我拖更不写文章的可以过来用你的小拳拳狠命地捶我胸口.... 那么今天我们来讲关于使用pythonopencvface来实现人脸验证及人脸解锁。代码量同样不多&#xff0c;你可以将这些代码运用在其它一些智能领域&#xf…

java foreach并行_使用foreach在Java中迭代并行数组的漂亮方法

Sean Adkinso..9这是一个有趣的练习.我创建了一个名为ParallelList的对象,它接受可变数量的类型化列表,并且可以遍历每个索引处的值(作为值列表返回):public class ParallelList implements Iterable> {private final List> lists;public ParallelList(List... lists) {t…

zTree笔记,设置无法勾选父节点(禁用父节点)和父节点禁用时回显选中子节点时关联父节点状态

名称链接zTree APIhttp://www.treejs.cn/v3/api.phpzTree Demohttp://www.treejs.cn/v3/demo.php#_101 最近又用到了zTree&#xff0c;虽然zTree的APi已经很全很方便很易懂了&#xff0c;但是难免有的方法找不到。为了方便他人方便自己&#xff0c;做下笔记记录下 zTree笔记1 …