一般情况本地不能直接连FTP服务器,需要在登陆了堡垒机的开发机上连,这个时候像Filezilla这类FTP客户端工具就不好用了,去探索才发现了更广阔的空间,ftp命令。
【大家千万不要学我,想尝试直接在服务器上安装可视化工具😂,后来想了下大概是早些年用Ubuntu桌面版形成了混乱的想法】
一、ftp命令简介
1、看下man吧
man ftp
Ftp is the user interface to the Internet standard File Transfer Protocol. The program allows a user to trans-fer files to and from a remote network site
2、常用的ftp下的命令和shell命令差不多,只是没有查看文件内容的命令,比如vim、cat、tail等
3、CentOS下自带的有, Mac下默认没有
二、基本操作命令
1、连接FTP服务器
ftp [hostname | server_ip]
ftp ftp.niliu.me
输入用户名和密码即可
注:其他连接方式,包括把用户名和密码写在配置中的方式见文末
2、列出目录
ftp> ls
3、切换目录
ftp> cd /dirname
4、下载文件
ftp> get /remote_dir/remote_filename /local_dir/local_filename
注:local_filename一定要写,可以不用提前建好。remote_dir和local_dir都可以省略,默认当前目录。
5、上传文件
ftp> put /local_dir/local_filename /remote_dir/remote_filename
注:remote_filename一定要写,可以不用提前建好。remote_dir和local_dir都可以省略,默认当前目录
6、断开链接
ftp> bye
三、常用命令
1、!command
执行本地shell命令
2、!
跳出到本地shell, 可以进行一些操作, 然后exit 退回ftp
3、批量下载
mget "*.log"
下载匹配的文件到本地机器当前目录,不能在命令中指定本地目录, 可以使用!命令提前进入本地目录
默认情况没下载一个文件都会提示是否下载, y继续,n跳过
ftp> mget "apiserver.log.*" mget apiserver.log.2021-01-13? n mget apiserver.log.2021-01-12? n mget apiserver.log.2021-01-11? n
可以通过prompt关闭提示, 直接全部下载
ftp> prompt off Interactive mode off. ftp> ftp> mget "apiserver.log.*" ... ... 226 Transfer complete 6628266 bytes received in 0.927 secs (7152.76 Kbytes/sec) # 本地接收到的文件 ls apiserver.log.2021-01-01 apiserver.log.2021-01-02 apiserver.log.2021-01-03 apiserver.log.2021-01-04 apiserver.log.2021-01-05 apiserver.log.2021-01-06 apiserver.log.2021-01-07 apiserver.log.2021-01-08 apiserver.log.2021-01-09 apiserver.log.2021-01-10 apiserver.log.2021-01-11 apiserver.log.2021-01-12 apiserver.log.2021-01-13
4、批量上传
用到再待完善
5、显示进度
用到再待完善
四、其他登陆方式
1、使用open命令
$ ftp ftp> open [hostname | server_ip]
2、使用配置文件保存用户名密码【测试无效,提示ftp: s: unknown optionxt,谁知道请帮忙留言呀】
格式:ftp -s:[配置文件] [ftp地址]
例子:ftp -s:e:/test_ftp.txt 192.1.101.203
cat test_ftp.txt username pwd
3、浏览器登陆
ftp://username:password@hostname:port
五、常见问题
1、输入ftp server_url长时间没有反应
原因:可能是21端口(出方向/入方向)被ACL限制了,可通过telnet排除
2、输入用户名和秘密后,提示错误,530 Login incorrect.Login failed.
网上很多资料现实是ftp服务器配置的问题,首先要检查用户名或密码输,用户名或秘密输错了都会提示这个错误
参考:
https://en.wikipedia.org/wiki/File_Transfer_Protocol
维基百科:文件传输协议
https://www.jianshu.com/p/10c4e46c77f1