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服务器及使用

[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、这个工具可以直接以非交互方法来进行下载

#现在回到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命令也可以下载。

#回到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是禁止自动登录,需要用户手动的去输入要登陆的用户和密码。这样写的好处是可以写一个自动下载的脚本

[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命令自动上传

#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大厂面试题戳领