【每日一记10】+第13天 Linux下使用Shell脚本实现FTP自动上传和下载文件学习
  

新手781833 1249

{{ttag.title}}
登录FTP实现下载文件功能
FTP服务器:***
FTP路径:/ftphome/data
本地路径:/local/data
将文件从FTP下载到本地的脚本如下:

批量下载脚本代码
复制代码
复制代码
1 #从FTP上批量下载文件到本地
2 #!/bin/sh
3 ftp -v -n ***<<EOF
4 user ftpuser ftppwd
5 binary
6 cd /ftphome/downloadData
7 lcd /local/getDownloadData
8 prompt
9 mget *
10 bye
11 EOF
12 echo "download from ftp successfully"
复制代码
复制代码


下载单个文件脚本代码
复制代码
复制代码
1 #从FTP上下载单文件到本地
2 #!/bin/sh
3 ftp -v -n ***<<EOF
4 user ftpuser ftppwd
5 binary
6 cd /ftphome/downloadData
7 lcd /local/getDownLoadData
8 prompt
9 #get test.txt
10 get test.txt
11 bye
12 EOF
13 echo "download from ftp successfully"
复制代码
复制代码


登录FTP实现上传文件功能
FTP服务器:***
FTP路径:/ftphome/uploadData
本地路径:/local/getUploadData
将文件从本地传到FTP的脚本如下:

批量上传脚本代码
复制代码
复制代码
1 #从本地向FTP批量上传文档
2 #!/bin/sh
3 ftp -v -n ***<<EOF
4 user ftpuser ftppwd
5 binary
6 hash
7 cd /ftphome/uploadData
8 lcd /ftphome/getUploadData
9 prompt
10 mput *
11 bye
12 #here document
13 EOF
14 echo "commit to ftp successfully"
复制代码
复制代码


上传单个文件脚本代码
复制代码
复制代码
1 #从本地向FTP上传单个文档
2 #!/bin/sh
3 PUTFILE = test.txt
4
5 ftp -v -n ***<<EOF
6 user ftpuser ftppwd
7 binary
8 cd /ftphome/uploadData
9 lcd  /ftphome/getUploadData
10 prompt
11 put $PUTFILE
12 bye
13 #here document
14 EOF
15 echo "commit to ftp successfully"
复制代码
复制代码


命令解释
登录FTP
1 ftp -i -n ***<< EOF


<< 是使用即时文件重定向输入
EOF是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。
ftp常见的几个标志有:

-d:使用调试模式,但必须编辑 /etc/syslog.conf 文件并添加以下中的一项:user.info FileName 或 user.debug FileName。
-g:禁用文件名中的元字符拓展,即取消全局文件名。
-i :关闭多文件传输中的交互式提示。
-n:防止在起始连接中的自动登录。否则, ftp 命令会搜索 $HOME/.netrc 登录项,该登录项描述了远程主机的登录和初始化过程。
-v:显示远程服务器的全部响应,并提供数据传输的统计信息,即在程序运行时显示详细的处理信息。
输入FTP用户名和密码
1 user ftpuser ftppwd
ftpuser:登录FTP时的用户名
ftppwd:登录FTP时的密码

通过binary命令传输文件
1 binary
FTP文件传输类型有: ascii、binary、ebcdic、image、local M 和 tenex。

复制代码
复制代码
– ascii:将文件传输类型设置为网络 ASCII。此类型为缺省值,即默认使用ascii方式进行传输。
– binary:将文件传输类型设置为二进制映像。需要使用binary方式传输的文件类型有ISO文件、可执行文件、压缩文件、图片等。此类型可能比 ASCII 传送更有效。
– ebcdic:将文件传输类型设为 EBCDIC。
– image:将文件传输类型设置为二进制映像。此类型可能比 ASCII 传送更有效。
– local M:将文件传输类型设置为本地。M 参数定义每计算机字位的十进制数。此参数没有缺省值。
– tenex:将文件传输类型设为 TENEX 机器需要的类型。
复制代码
复制代码
切换散列符号 (#) 打印
1 hash
当用get或put命令传送一个数据块时,让FTP显示一个#,这是看得见的确定数据在传输的信号,在用户不确信网络是否工作时有用。当传输很大的文件时,如果FTP已显示这种信息,表示传输正在进行。hash命令是一个布尔变量式的命令,用hash命令打开显示#开关,再用hash命令关闭显示。

切换目录
分别在本地和FTP上进入对应文件夹下:
到FTP上对应路径(这里表示进入/ftphome/downloadData的文件夹下):

1 cd /ftphome/downloadData
到本地的对应路径(这里表示在/ftphome/getDownloadData的文件夹下):

lcd /ftphome/getDownloadData
切换交互式提示
prompt
使用mget或mput时,prompt命令让FTP在传输每个文件前进行提示,这样防止覆盖已有的文件。若发出prompt命令时已经启动了提示,FTP将把提示关掉,此时再传输所有的文件则不会有任何提问。

文件传输
下载文件
下载多个文件:
格式:mget [remote-files]
例如:获取远端所在文件夹下所有文件

1 mget *
2 #或
3 mget *.*


注:mget . 每下载一个文件,都会有提示。如果要除掉提示,则在mget . 命令前先执行:prompt off。

下载单个文件:
格式:get [remote-file] [local-file]
例如:获取远端FTP上的text.txt文件

1 get a.txt
上传文件
上传多个文件:
格式:mput local-files
例如:将所在文件夹下所有文件上传到FTP上

mput *
上传单个文件:
格式:put local-file [remote-file]
例如:将本地text.txt文件上传到远端FTP上

1 put a.txt
断开连接
1 bye
结束文件传输会话并退出 ftp 命令,与quit命令相同。

分界符标志
1 ... << EOF
2 #execute shell
3 EOF
EOF只是一个分界符标志,完全可以用abc, ! 等替换,也一样的功能,只是大家都习惯用EOF来表示。
<<用法:当shell看到<<的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。因此分界符可以是定义的任何字符串。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

头像被屏蔽
新手078326 发表于 2020-8-21 22:09
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
新手780102 发表于 2020-8-22 20:47
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
JM 发表于 2020-8-22 21:32
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
司马缸砸了光 发表于 2020-8-22 21:43
  
提示: 作者被禁止或删除 内容自动屏蔽
新手978513 发表于 2020-8-22 21:52
  
领取任务
头像被屏蔽
新手741261 发表于 2020-8-22 22:28
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
新手031815 发表于 2020-8-22 22:43
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
新手078326 发表于 2020-8-22 22:54
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
新手780102 发表于 2020-8-23 22:40
  
提示: 作者被禁止或删除 内容自动屏蔽
发表新帖
热门标签
全部标签>
【 社区to talk】
每日一问
新版本体验
标准化排查
高手请过招
社区新周刊
产品连连看
GIF动图学习
功能体验
安装部署配置
纪元平台
平台使用
信服课堂视频
网络基础知识
技术笔记
2023技术争霸赛专题
运维工具
排障笔记本
安全效果
答题自测
解决方案
VPN 对接
云化安全能力
产品解析
关键解决方案
专家问答
技术圆桌
设备维护
存储
迁移
秒懂零信任
文档捉虫
华北区交付直播
每周精选
西北区每日一问
畅聊IT
在线直播
MVP
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
用户认证
原创分享
sangfor周刊
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
资源访问
地址转换
虚拟机
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
卧龙计划
华北区拉练
天逸直播
以战代练
技术晨报
技术盲盒
山东区技术晨报
齐鲁TV
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
专家说
热门活动
产品动态
行业实践

本版版主

461
248
13

发帖

粉丝

关注

本版达人

feeling

本周分享达人

新手29676...

本周提问达人