资讯专栏INFORMATION COLUMN

Shell脚本之跨节点目录文件传输

IT那活儿 / 3087人阅读
Shell脚本之跨节点目录文件传输
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

  
最近写了一个跨主机目录文件传输脚本,复习了一下FTP使用,简要分享一下脚本片段及用法。


概念解析

  • ftp   用来连接ftp服务器;
  • user  用来输入用户名和密码;
  • binary  ftp文件传输类型,将类型设置为二进制;
  • cd 上传ftp的目的路径;
  • lcd 本地要上传文件所在路径;
  • prompt 文件覆盖提示;
  • put 上传单个文件;
  • mput 批量上传文件;
  • bye 退出。

常见响应状态码含义

  • 230 用户已登录;

  • 530 未登录;

  • 550 未执行请求的操作,文件不可用,无权限的操作;

  • 250 请求的文件操作正确,完成;

  • 226 关闭数据连接;

  • 150 文件状态正常,准备打开数据连接,发送数据。

可以将ftp响应的状态码存入日志中,由此可以判断是否登录成功或传输成功等。

脚  本


运行格式sh ftp_mv.sh本地路径ftp的路径 ip地址用户名密码。
例:
sh ftp_mv.sh /home/usr/wzm1/ /home/usr/wzm2/ ip user passwd

如何解决剪切问题


如果需要移动的目录随时会产生新的文件,可以先将目录中文件mv移动到本地另外一个目录,再进行传输,这样后期就能方便的删除已经mv过的文件。

怎样规避bug


使用-d判断本地目录是否存在,然后通过先lcd到一个空的目录,防止需要移动到的目录不存在,导致文件移动到了默认home目录中。

日志反馈输出


查询FTP日志,判断ftp响应的状态码,输出移动情况,并由此准确的得出ftp的传输情况,并进行输出。

本文作者:汪子铭(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129390.html

相关文章

  • 前端阅读笔记 2016-11-25

    摘要:为了防止某些文档或脚本加载别的域下的未知内容,防止造成泄露隐私,破坏系统等行为发生。模式构建函数响应式前端架构过程中学到的经验模式的不同之处在于,它主要专注于恰当地实现应用程序状态突变。严重情况下,会造成恶意的流量劫持等问题。 今天是编辑周刊的日子。所以文章很多和周刊一样。微信不能发链接,点了也木有用,所以请记得阅读原文~ 发个动图娱乐下: 使用 SVG 动画制作游戏 使用 GASP ...

    KoreyLee 评论0 收藏0
  • Web开发之跨域与跨域资源共享

    摘要:例外当涉及到同源策略时,有两个主要的例外授信范围两个相互之间高度互信的域名,如公司域名,不遵守同源策略的限制。端口未将端口号加入到同源策略的组成部分之中,因此和属于同源并且不受任何限制。 原文链接:http://www.devsai.com/2016/11/24/talk-CORS/ 同源策略(same origin policy) 1995年,同源政策由 Netscape 公司引入浏...

    Eastboat 评论0 收藏0
  • 《网络黑白》一书所抄袭的文章列表

    摘要:网络黑白一书所抄袭的文章列表这本书实在是垃圾,一是因为它的互联网上的文章拼凑而成的,二是因为拼凑水平太差,连表述都一模一样,还抄得前言不搭后语,三是因为内容全都是大量的科普,不涉及技术也没有干货。 《网络黑白》一书所抄袭的文章列表 这本书实在是垃圾,一是因为它的互联网上的文章拼凑而成的,二是因为拼凑水平太差,连表述都一模一样,还抄得前言不搭后语,三是因为内容全都是大量的科普,不涉及技术...

    zlyBear 评论0 收藏0
  • 支持多用户web终端实现及安全保障(nodejs)

    摘要:每次在命令行中输入一串命令,敲入回车,终端进程都会一个子进程,用来执行输入的命令,终端进程通过系统调用监听子进程退出,同时通过暴露的输出子进程执行信息。父进程通过创建该的实现向子进程从设备的输入输出。 背景 terminal(命令行)作为本地IDE普遍拥有的功能,对项目的git操作以及文件操作有着非常强大的支持。对于WebIDE,在没有web伪终端的情况下,仅仅提供封装的命令行接口是完...

    kaka 评论0 收藏0
  • 采用shell自定义脚本,控制集成部署环境更加方便灵活

    摘要:是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变得可能。步骤安装下载包,官网。启动,将包放入容器里,启动。 Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变得可能。现在软件开发追求的是效率以及质量,Jenkins使得自动化成为可能! 亮点采用shell自定义脚本,控制集成部署环境更加方便灵活精简war包中的lib包,常驻tom...

    rubyshen 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<