用ftp命令操作ftp服务器笔记

一般情况本地不能直接连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

发表评论

电子邮件地址不会被公开。 必填项已用*标注