c++ ftp服务端_FTP客户端软件介绍及使用

FTP客户端软件介绍及使用

客户端软件: ftp,lftp,lftpget,wget,curl ftp -A ftpserver port -A 主动模式 –p 被动模式 lftp –u username ftpserver lftp username@ftpserver lftpget ftp://ftpserver/pub/file gftp:GUI centos5 最新版2.0.19 (11/30/2008),官网:https://www.gftp.org/ filezilla,FTP Rush,CuteFtp,FlashFXP,LeapFtp IE ftp://username:password@ftpserver

2.6.1 lftp软件介绍及使用

Lftp客户端工具(现在最好使用的客户端软件):lftp这个软件类似于bash可以实现一些和bash中tab键补全的,目录文件颜色显示。而且lftp登陆的时候直接不用输入匿名密码用户。

1、在客户端服务器下载lftp

[11:23:41 root@a7 ~]#yum install lftp -y

2、链接FTP服务器及使用

undefined_b.jpg
[11:24:15 root@a7 ~]#lftp 10.0.0.8
lftp 10.0.0.8:~> ls
drwxr-xr-x    2 0        0              20 Jul 08 02:59 pub
lftp 10.0.0.8:/> ?          #输入 ? 可显示所有支持的命令!<shell-command>                     (commands)                           alias [<name> [<value>]]             attach [PID]bookmark [SUBCMD]                    cache [SUBCMD]                       cat [-b] <files>                     cd <rdir>chmod [OPTS] mode file...            close [-a]                           [re]cls [opts] [path/][pattern]      debug [<level>|off] [-o <file>]du [options] <dirs>                  exit [<code>|bg]                     get [OPTS] <rfile> [-o <lfile>]      glob [OPTS] <cmd> <args>help [<cmd>]                         history -w file|-r file|-c|-l [cnt]  jobs [-v] [<job_no...>]              kill all|<job_no>lcd <ldir>                           lftp [OPTS] <site>                   ln [-s] <file1> <file2>              ls [<args>]mget [OPTS] <files>                  mirror [OPTS] [remote [local]]       mkdir [-p] <dirs>                    module name [args]more <files>                         mput [OPTS] <files>                  mrm <files>                          mv <file1> <file2>[re]nlist [<args>]                   open [OPTS] <site>                   pget [OPTS] <rfile> [-o <lfile>]     put [OPTS] <lfile> [-o <rfile>]pwd [-p]                             queue [OPTS] [<cmd>]                 quote <cmd>                          repeat [OPTS] [delay] [command]rm [-r] [-f] <files>                 rmdir [-f] <dirs>                    scache [<session_no>]                set [OPT] [<var> [<val>]]site <site-cmd>                      source <file>                        torrent [-O <dir>] <file|URL>...     user <user|URL> [<pass>]wait [<jobno>]                       zcat <files>                         zmore <files>

3、这个工具可以直接以非交互方法来进行下载

undefined_b.jpg
#现在回到FPT服务器A8主机创建一个LFTP的文件
[11:27:05 root@A8 pub]#touch LFTP
[11:28:02 root@A8 pub]#ls
f1.img  LFTP
​
#在回到A7客户端通过非交互式方式进行下载
[11:26:47 root@a7 ~]#lftpget ftp://10.0.0.8/pub/LFTP
​
#通过查看LFTP文件已经下载
[11:28:47 root@a7 ~]#ls                      
1.txt            Desktop    Downloads  initial-setup-ks.cfg  LFTP   Pictures  sadsad.sh  Videos
anaconda-ks.cfg  Documents  f1.img     initinstall.sh        Music  Public    Templates

4、使用非交互方式下载ftp的资源用wget命令也可以下载。

8043deb004337e53c07d8bb85fa3a7c0.png
#回到FPT服务器A8主机创建一个WGET文件
[11:28:02 root@A8 pub]#touch wget
[11:30:36 root@A8 pub]#ls wget 
wget
​
#回到A7客户端通过wget方式进行下载
[11:28:53 root@a7 ~]#wget ftp://10.0.0.8/pub/wget
--2020-07-08 11:31:10--  ftp://10.0.0.8/pub/wget=> ‘wget’
Connecting to 10.0.0.8:21... connected.
......省略......
​
#通过ls命令查看WGET文件已经下载
[11:31:10 root@a7 ~]#ls
1.txt            Desktop    Downloads  initial-setup-ks.cfg  LFTP   Pictures  sadsad.sh  Videos
anaconda-ks.cfg  Documents  f1.img     initinstall.sh        Music  Public    Templates  wget

5、但是在有些场景下ftp是需要验证登陆才行。这是指定登录FTP服务端zhang这个用户登陆

lftp –u 用户名  后面跟服务器ip (指定某个用户登陆ftp)

范例:

[11:33:33 root@a7 ~]#lftp -u zhang 10.0.0.8
Password:                       #这里输入的是zhang这个linux用户的登录密码
lftp zhang@10.0.0.8:~>

6、对指定用户家目录进行文件下载

当然他所在的目录就是FTP服务端 zhang这个用户的家目录。现在我去FTP服务器zhang用户的家目录下创建一个zhang的文件

FTP服务端操作:

#回到FTP服务器并进入到zhang用户的家目录
[11:30:38 root@A8 pub]#cd /home/zhang/
#touch一个zhang.txt文件
[11:37:08 root@A8 zhang]#touch zhang.txt
[11:37:12 root@A8 zhang]#ls
zhang.txt

FTP客户端操作:

#现在在FTP服务器上建好了zhang.txt文件之后我们回到A7 客户端进行查看这个文件已经出现
lftp zhang@10.0.0.8:~> ls
-rw-r--r--    1 0        0               0 Jul 08 03:37 zhang.txt

2.6.2 ftp软件介绍及使用 1、禁止自动登录选项

-i选项关闭ftp的交互信息。-n是禁止自动登录,需要用户手动的去输入要登陆的用户和密码。这样写的好处是可以写一个自动下载的脚本

4f3b5a1e96a7279dd1550bb1cb744b83.png
[11:41:31 root@a7 ~]#ftp -i -n 10.0.0.8     #使用-i -n参数后面跟FTP服务器IP
Connected to 10.0.0.8 (10.0.0.8).
220 (vsFTPd 3.0.3)
ftp> user zhang 47678276                    #指定通过zhang这个用户登录 密码为47678276
331 Please specify the password.
230 Login successful.
ftp> ls                                     #通过ls命令查看会有zhang用户家目录的文件
227 Entering Passive Mode (10,0,0,8,31,18).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jul 08 03:37 zhang.txt

2、mget命令的使用

Mget支持通配符。而且mget可以支持下载多个文件。

FTP服务端操作:

#我们先回到FTP服务端zhang用户的家目录下多创建几个mget文件[11:37:13 root@A8 zhang]#pwd
/home/zhang
[11:44:49 root@A8 zhang]#touch mget{1..4}
[11:44:58 root@A8 zhang]#ls
mget1  mget2  mget3  mget4  zhang.txt

FTP客户端操作:

#再回到A7客户端通过mget进行多个文件下载

[11:45:45 root@a7 ~]#ftp -i -n 10.0.0.8     #使用-i -n参数后面跟FTP服务器IP
Connected to 10.0.0.8 (10.0.0.8).
220 (vsFTPd 3.0.3)
ftp> user zhang 47678276                    #指定通过zhang这个用户登录 密码为47678276
331 Please specify the password.
230 Login successful.
ftp> ls                                     #通过ls命令查看有多个mget文件
227 Entering Passive Mode (10,0,0,8,87,66).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jul 08 03:44 mget1
-rw-r--r--    1 0        0               0 Jul 08 03:44 mget2
-rw-r--r--    1 0        0               0 Jul 08 03:44 mget3
-rw-r--r--    1 0        0               0 Jul 08 03:44 mget4
-rw-r--r--    1 0        0               0 Jul 08 03:37 zhang.txt
226 Directory send OK.
ftp> mget *                                 #使用mget进行下载、这里的*表示所有因为支持通配符
local: mget1 remote: mget1
227 Entering Passive Mode (10,0,0,8,178,104).
150 Opening BINARY mode data connection for mget1 (0 bytes).
226 Transfer complete.
local: mget2 remote: mget2
227 Entering Passive Mode (10,0,0,8,109,12).
150 Opening BINARY mode data connection for mget2 (0 bytes).
226 Transfer complete.
local: mget3 remote: mget3
227 Entering Passive Mode (10,0,0,8,47,110).
150 Opening BINARY mode data connection for mget3 (0 bytes).
226 Transfer complete.
local: mget4 remote: mget4
227 Entering Passive Mode (10,0,0,8,47,60).
150 Opening BINARY mode data connection for mget4 (0 bytes).
226 Transfer complete.
local: zhang.txt remote: zhang.txt
227 Entering Passive Mode (10,0,0,8,20,2).
150 Opening BINARY mode data connection for zhang.txt (0 bytes).
226 Transfer complete.
​
#然后在本地主机终端查看已经下载完成
[11:18:04 root@a7 ~]#ls mget*
mget1  mget2  mget3  mget4

3、Put命令自动上传

4d27f37c45d66ca424f30ee3c06b03d5.png
#1、在ftp 命令终端通过!ls查看本地文件
ftp> !ls
1.txt        Desktop    Downloads  initial-setup-ks.cfg  LFTP   mget2  mget4  Pictures  sadsad.sh  Videos  zhang.txt
anaconda-ks.cfg  Documents  f1.img     initinstall.sh        mget1  mget3  Music  Public    Templates  wget
​
#2、先切换工作模式为主动模式(默认下被动模式是不允许上传的)
ftp> passive
Passive mode off.
​
#3、put initinstall.sh 这是将本机的initinstall.sh文件上传到ftp服务器上去
ftp> put initinstall.sh
local: initinstall.sh remote: initinstall.sh
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
8340 bytes sent in 0.00152 secs (5497.69 Kbytes/sec)
​
#4、通过ls查看initinstall.sh已经上传过去
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         8340 Jul 08 03:55 initinstall.sh
4、编写自动化上传下载的ftp脚本是个脚本的意思是使用ftp -i选项就是自动登录不需要交互。-n是禁止登陆。链接10.0.0.8这个ftp服务器。然后登陆使用mget *命令下载服务器上所有的文件。再通过put命令上传anaconda-ks.cfg这个文件然后退出

客户端操作:

1、编写脚本:
[12:03:15 root@a7 ~]#vim ftp.sh
​
#!/bin/bash
ftp -i -n 10.0.0.8 <<!          #登录FTP服务器
user zhang 47678276             #使用zhang用户登录
mget *                          #使用mget命令 *下载所有文件
put anaconda-ks.cfg             #通过put 上传anaconda-ks.cfg 至fpt服务器
exit                            #退出
! 
​
2、执行该脚本之前现在本地通过ls命令查看当前文件现状
[12:08:17 root@a7 ~]#ls
anaconda-ks.cfg  Desktop  Documents  Downloads  ftp.sh  initial-setup-ks.cfg  initinstall.sh  Music  Pictures  Public  sadsad.sh  Templates  Videos
​
3、执行ftp.sh脚本
[12:08:18 root@a7 ~]#bash ftp.sh 
​
4、跑完脚本之后再通过ls查看就会多了zhang.txt和mget1、mget2、mget3、mget4等文件
[12:08:51 root@a7 ~]#ls
anaconda-ks.cfg  Documents  ftp.sh                initinstall.sh  mget2  mget4  Pictures  sadsad.sh  Videos
Desktop          Downloads  initial-setup-ks.cfg  mget1           mget3  Music  Public    Templates  zhang.txt

FTP服务端操作:

1、来到FTP服务端得zhang用户家目录下通过ls查看就会多一个anaconda-ks.cfg文件
[11:44:59 root@A8 zhang]#ls
anaconda-ks.cfg  mget1  mget2  mget3  mget4  zhang.txt

※部分文章来源于网络,如有侵权请联系删除;更多文章和资料|点击后方文字直达 ↓↓↓ 100GPython自学资料包 阿里云K8s实战手册 [阿里云CDN排坑指南]CDN ECS运维指南 DevOps实践手册 Hadoop大数据实战手册 Knative云原生应用开发指南 OSS 运维实战手册 云原生架构白皮书 Zabbix企业级分布式监控系统源码文档 10G大厂面试题戳领

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

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

相关文章

java中怎么使用json数据_JAVA中使用JSON进行数据传递

1.是不是只有xml传递数据的技术才是webservice&#xff1f;可以这么理解。webservice是基于SOAP协议&#xff0c;SOAP协议是基于XML的文本协议。所以webservice可以简单理解为是基于XML的传输技术&#xff0c;好比HTML是基于文本的传输协议。2.servlet是服务端的java程序的统称…

java 限制参数类型_java定义受限制的类型参数操作

有时您可能想限制可以在参数化类型中用作类型参数的类型。 例如&#xff0c;对数字进行操作的方法可能只希望接受Number或其子类的实例。 这就是有界类型参数的用途。受限制参数类型的方法示例要声明有界类型参数&#xff0c;请列出类型参数的名称&#xff0c;后跟extends关键字…

安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!

软件/资料获取方式在文末正文&#xff1a;前几天发哥预告了一下LOL手游上线的事&#xff0c;本来以为国服也会同步上线&#xff0c;结果也是意料之中的跳票了&#xff0c;让我不禁想起当年玩魔兽世界时国服万年的TBC&#xff0c;不过据说LOL推迟上线是怕影响王者荣耀5周年庆典&…

java版本lstm_LSTM java 实现

由于实验室事情缘故&#xff0c;需要将Python写的神经网络转成Java版本的&#xff0c;但是python中的numpy等啥包也不知道在Java里面对应的是什么工具&#xff0c;所以索性直接寻找一个现成可用的Java神经网络框架&#xff0c;于是就找到了JOONE&#xff0c;JOONE是一个神经网络…

easy excel date 类型解析报错_ptarchiver原理解析

pt-archiver原理解析作为MySQL DBA&#xff0c;可以说应该没有不知道pt-archiver了&#xff0c;作为pt-toolkit套件中的重要成员&#xff0c;往往能够轻松帮助DBA解决数据归档的问题。例如线上一个流水表&#xff0c;业务仅仅只需要存放最近3个月的流水数据&#xff0c;三个月前…

python中np没有定义_python中的np.empty_python – np.empty,np.zeros和np.one

我很好奇它使用np.empty而不是np.zeros实际上有多大差异,还有关于np.ones的差异.我运行这个小脚本来测试每个创建一个大型数组所需的时间&#xff1a;import numpy as npfrom timeit import timeitN 10_000_000dtypes [np.int8, np.int16, np.int32, np.int64,np.uint8, np.u…

设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略

笔记本电脑现如今在我们的生活中出镜率如此之高&#xff0c;不论是学生党查阅资料还是上班族的忙碌办公&#xff0c;抑或是电竞爱好者的游戏体验&#xff0c;都要依靠笔记本电脑来完成&#xff0c;但对于它的选购方法你了解多少&#xff1f;一千个人就有一千种不同的标准&#…

java s1_转!!Java 基础面试题的剖析: short s1=1;s1 = s1 +1 报错? s1+=1 呢

package common;public class ShortTypeTest {/** param args*/public static void main(String[] args) {// TODO Auto-generated method stubshort s1 1; s1 (short) (s1 1);//简单类型short s21; s2 1;//复合类型,复合赋值操作符,System.out.println(s1";"s2);…

python内循环只执行一次_如何1分钟内从3600只股种选出黑马股,仅分享这一次(太透彻了)...

“1234”操盘定理中&#xff0c;1是指如何持牛股&#xff0c;2是指观念要正确&#xff0c;3是指看破十个现象&#xff0c;4是指抓热点。具体讲解下选股步骤盘后我们怎么去快速选出超短线需要密切关注的票呢?其实选股方法少说也有几千种&#xff0c;我想没有人统计过&#xff0…

java 运行时类型_Java基础之RTTI 运行时类型识别

运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制&#xff0c;在Java运行时&#xff0c;RTTI维护类的相关信息。多态(polymorphism)是基于RTTI实现的。RTTI的功能主要是由Class类实现的。Class类Class类是"类的类"(class of classes)。如果…

指定的服务已经标记为删除_你的电话号码被标记过吗?你知道这件事情还能赚钱吗?...

今天闲来无事和大家唠唠赚钱的小副业。“电话标记”&#xff0c;我被这事困惑了很多年&#xff0c;最近解决了&#xff0c;同时还发现&#xff0c;这个信息差能挣钱&#xff0c;文末还给到方法&#xff0c;执行力强的伙伴原样照做&#xff0c;0成本&#xff0c;马上开搞&#x…

mplab x ide 中文使用手册_SCI必备利器:翻译又快又准,强推这款超牛X的神器!...

随手转发给好友和朋友圈 编辑&#xff1a;科研小通再分享一款翻译神器&#xff0c;不用调用Google服务器&#xff0c;速度超快。实时翻译&#xff0c;服务器速度杠杠的。今天给大家安利一款超牛X的翻译神器&#xff1a;Mate Translate。官网首页https://gikken.co/mate-transla…

python流行趋势_Python流行度再创新高,学Python就从风变编程开始

10月初&#xff0c;全球编程语言社区TIOBE公布了2020年10月编程语言排行榜&#xff0c;排名情况相较前几个月变化不大&#xff0c;前十名分别为C、Java、Python、C 、C#、Visual Basic、JavaScript 、PHP、R和SQL。其中&#xff0c;Python继续稳居第三&#xff0c;且其受欢迎度…

8086汇编4位bcd码_238期中4头3尾,排列五第19239期爱我彩规

爱我彩规专业研究(七星彩、排列五) 前四位的铁码与定位规&#xff0c;有幸开通爱我彩规公众号&#xff0c;努力为大家提供稳定的号码参考。作者微信号awc1125。 逢星期二和星期天不在彩码课堂公众号转发&#xff0c;因星期二和星期天每日八篇巳排满&#xff0c;只发爱我彩规公…

python通过链接下载文件-如何使用Python通过HTTP下载文件?

import urllib urllib.urlretrieve ("http://www.example.com/songs/mp3.mp3", "mp3.mp3") (用于Python 3)import urllib.request和urllib.request.urlretrieve) 还有一个有“进度栏”的import urllib2 url "http://download.thinkbroadband.com/10M…

centos6.5 编译安装mysql_Centos6.5编译安装mysql 5.7.14详细教程

此文实例给亲们分享了CENTOS6.5 编译mysql 5.7.14安装配置方法&#xff0c;供大家参考&#xff0c;具体内容如下mysql5.7.14 编译安装在自定义文件路径下下载安装包配置安装环境编译安装cmake\-DCMAKE_INSTALL_PREFIX/data/db5714 \-DMYSQL_DATADIR/data/db5714/var \-DMYSQL_U…

时间插件只能选择整点和半点_我花一小时自制了三款PPT插件,不仅免费分享,还想手把手教你制作...

更准确的说&#xff0c;三顿花一小时给PPT里这个天天和你见面的功能区做了一次彻底的整容&#xff1a;我精简了好多根本用不到的功能&#xff0c;还添加了一大波可以让你效率翻倍的一键操作&#xff0c;比如一键拆分文字&#xff0c;一键美化图表等等。这样的改头换面操作起来一…

c主线程如何等待子线程结束 linux_使用互斥量进行同步 - Linux C进程与多线程入门_Linux编程_Linux公社-Linux系统门户网站...

互斥简单地理解就是&#xff0c;一个线程进入工作区后&#xff0c;如果有其他线程想要进入工作区&#xff0c;它就会进入等待状态&#xff0c;要等待工作区内的线程结束后才可以进入。基本函数(1) pthread_mutex_init函数原型&#xff1a;int pthread_mutex_init ( pthread_mut…

电脑声音太小如何增强_感觉手机音量太小了?教你这样设置,声音立马大上许多...

不管是打电话&#xff0c;还是看电视&#xff0c;如果觉得手机的声音太小了&#xff0c;总会感到听起来很吃力&#xff0c;那么我们遇到这种情况&#xff0c;可以怎么办呢&#xff1f;建议大家看看下面这个方法&#xff0c;或许会让你的手机音量瞬间变大。1、打开单声道音频如今…

java 8时间操作_Java8 时间日期类操作

Java8 时间日期类操作Java8的时间类有两个重要的特性线程安全不可变类&#xff0c;返回的都是新的对象显然&#xff0c;该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全的问题。同时Java8的时间类提供了诸多内置方法&#xff0c;方便了对时间进行相应的操作。上…