学习是一个逐步发现自己无知的过程!

ftp上传文件

介绍在 Linux shell 中如何使用 ftp 命令。包括如何连接 FTP 服务器,上传或下载文件以及创建文件夹。尽管现在有许多不错的 FTP 桌面应用,但是在服务器、SSH、远程会话中命令行 ftp 命令还是有很多应用的。比如。需要服务器从 ftp 仓库拉取备份。

安装FTP命令

  yum  install ftp  -y

FTP 常用的命令:

  • ls 列出远程机的当前目录

  • cd 在远程机上改变工作目录

  • lcd 在本地机上改变工作目录

  • ascii 设置文件传输方式为ASCII模式

  • binary 设置文件传输方式为二进制模式

  • close 终止当前的ftp会话

  • hash 每次传输完数据缓冲区中的数据后就显示一个#号

  • get(mget) 从远程机传送指定文件到本地机

  • put(mput) 从本地机传送指定文件到远程机

  • open 连接远程ftp站点

  • ? 显示本地帮助信息

  • ! 转到Shell中

建立FTP连接

想要连接 FTP 服务器,在命令上中先输入ftp然后空格跟上 FTP 服务器的域名 'domain.com' 或者 IP 地址 例如:ftp sirliu.gggggftp1.com

登陆方式一

  [root@SirLiu ~]# ftp liuxin.gotoftp1.com  #登陆命令
  
  Connected to liuxin.gotoftp1.com (125.65.76.41).
  220-Microsoft FTP Service
  220 »¶ӭţl½ӱ¾վFTP!
  
  Name (liuxin.gotoftp1.com:root): liuxin  #输入FTP账号
  331 Password required
  
  Password:   #输入FTP密码
  530 User cannot log in.
  Login failed.
  Remote system type is Windows_NT.
  
  ftp>   #登陆成功现在就可以操作FTP目录了

登陆方式二

格式:ftp [hostname| ip-address]

  [root@SirLiu ~]# ftp -i -n sirliu.ggggftp1.com  
  
  Connected to liuxin.gotoftp1.com (125.65.76.41).
  220-Microsoft FTP Service
  220 »¶ӭţl½ӱ¾վFTP!
  Remote system type is Windows_NT.
  ftp> 
  
  ftp> ls  #感觉是连上了其实没有
  
  530 Please login with USER and PASS.
  Passive mode refused.
  
  ftp> user sirliu  Sirliu123.com #用非交互式验证 user 用户+密码 
  
  331 Password required
  230-źӑl½ӱ¾վFTP·þϱǷ
  230 User logged in.
  
  ftp> ls  #在使用就可以看到里面的目录了
  
  227 Entering Passive Mode (125,65,76,41,128,232).
  125 Data connection already open; Transfer starting.
  drwxrwxrwx   1 owner    group               0 Sep  9  2017 logfiles
  drwxrwxrwx   1 owner    group               0 May  6 13:32 others
  -rwxrwxrwx   1 owner    group       208343997 Oct 17 20:01 www.zip
  226 Transfer complete.
  ftp> 

下载文件

在下载一个文件之前,我们首先需要使用lcd命令设定本地接受目录位置。

如果你不指定下载目录,文件将会下载到你登录 FTP 时候的工作目录。

  ftp> lcd  #查看你在那个位置   (和pwd命令功能一样)
  Local directory now /root
  ftp> get wwwroot.zip  #get命令+文件名即可下载
  local: wwwroot.zip remote: wwwroot.zip
  227 Entering Passive Mode (122,66,77,44,188,222).
  125 Data connection already open; Transfer starting.
  WARNING! 759395 bare linefeeds received in ASCII mode
  File may not have transferred correctly.
  226 Transfer complete.
  208343997 bytes received in 69 secs (3020.77 Kbytes/sec)

 

 

扩展了解:

首先,所有的lftp终端内的命令,都可以用 代码:

help 命令名 的方式来查看帮助信息。 另外,lftp支持tab自动补全,记不得命令是,多打两个tab,就可以看到可能的选项了。

1、登录ftp 代码:

lftp 用户名:密码@ftp地址:传送端口(默认21) 也可以先不带用户名登录,然后在接口界面下用login命令来用指定账号登录,密码不显示。

2、查看文件与改变目录 代码:

ls cd 对应ftp目录 嘿嘿,很简单吧?其实,在lftp终端中,前面带一个l的命令例如lcd,指的是local,就是在本机的操作,而对应的没有这个l的,都是对ftp site的操作。还有就是要执行本地终端命令,也可以用前面带一个!的方式。这样,配合起来,终端,本地的操作都很放遍。 例如,查看ftp上所有的以mp3为扩展名的文件: 代码:

find . -name "*.mp3" 3、下载 get当然是可以的,还可以 代码:

mget -c *.pdf 把所有的pdf文件以允许断点续传的方式下载。m代表multi 代码:

mirror aaa/ 将aaa目录整个的下载下来,子目录也会自动复制 代码:

pget -c -n 10 file.dat 以最多10个线程以允许断点续传的方式下载file.dat 可以通过设置pget:default-n的值而使用默认值。

4、上传 同样的put,mput,都是对文件的操作,和下载类似。 代码:

mirror -R 本地目录名 将本地目录以迭代(包括子目录)的方式反向上传到ftp site。

5、模式设置。 代码:

set ftp:charset gbk 远程ftp site用gbk编码,对应的要设置为utf8,只要替换gbk为utf8即可。 代码:

set file:charset utf8 本地的charset设定为utf8,如果你是gbk,相应改掉。 代码:

set ftp:passive-mode 1 使用被动模式登录,有些site要求必须用被动模式或者主动模式才可以登录,这个开关就是设置这个的。0代表不用被动模式。

6、书签 其实命令行也可以有书签,在lftp终端提示符下: 代码:

bookmark add ustc 就可以把当前正在浏览的ftp site用ustc作为标签储存起来。以后在shell终端下,直接 代码:

lftp ustc 就可以自动填好用户名,密码,进入对应的目录了。 代码:

bookmark edit 会调用编辑器手动修改书签。当然,也可以看到,这个书签其实就是个简单的文本文件。密码,用户名都可以看到。

7、配置文件 /etc/lftp.conf 一般,我会添加这几行: set ftp:charset gbk set file:charset utf8 set pget:default-n 5 这样,就不用每次进入都要打命令了。其他的set 可以自己tab然后help 来看。

赞(2)
未经允许不得转载:劉大帥 » ftp上传文件
分享到: 更多 (0)

来都来了,不说点什么可不好喔! 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址