文件传输协议(FTP:FileTransfer Protocol)使得主机间能够共享文件。 FTP 使用 TCP 生成一个虚拟链接用于控制信息,而后再生成一个单独的 TCP 链接用于数据传输。控制链接使用相似 TELNET 协议在主机间交换命令和消息。文件传输协议是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最先使用的协议之一,它属于网络协议组的应用层。FTP客户机能够给服务器发出命令来下载文件,上传文件,建立或改变服务器上的目录。ftp使用TCP做为传输层协议,而tftp则是UDP协议。html
Linux下有FTP服务,FTP分为服务器端和客户端,某台机器做为FTP服务器,须要启动vsftpd服务,另外一台机器做为客户端,须要安装有ftp或者lftp的rpm包。linux
首先查看本机是否安装有ftp相关的rpm包数据库
[root@localhost Packages]# rpm -qa|grep ftp report-plugin-ftp-0.18-7.el6.i686 vsftpd-2.2.2-6.el6.i686 report-config-ftp-0.18-7.el6.i686 gvfs-obexftp-1.4.3-9.el6.i686
若是没有安装,能够挂载RedHat的安装包,在Packages目录下查找服务器
[root@localhost nfs]# mount -t vboxsf RedHat_Share /home/Wentasy/share [root@localhost nfs]# ll total 4 -rw-rw-rw-. 1 root root 12 Jul 21 10:22 file1 [root@localhost nfs]# cd /home/Wentasy/s share/ software/ sysctl.conf [root@localhost nfs]# cd /home/Wentasy/share/ [root@localhost share]# ll total 2862360 -rwxrwxrwx. 1 root root 2931056640 Feb 23 2012 rhel-server-6.0-i386-dvd.iso [root@localhost share]# mount -o loop rhel-server-6.0-i386-dvd.iso /mnt [root@localhost share]# cd /mnt [root@localhost share]# cd Packages [root@localhost Packages]# find . -name "*ftp*" ./ftp-0.17-51.1.el6.i686.rpm ./gvfs-obexftp-1.4.3-9.el6.i686.rpm ./lftp-4.0.9-1.el6.i686.rpm ./report-config-ftp-0.18-7.el6.i686.rpm ./report-plugin-ftp-0.18-7.el6.i686.rpm ./tftp-0.49-5.1.el6.i686.rpm ./tftp-server-0.49-5.1.el6.i686.rpm ./vsftpd-2.2.2-6.el6.i686.rpm
安装ftp-xxx.i686.rpm和lftp-xxxi686.rpm微信
[root@localhost Packages]# rpm -ivh ftp-0.17-51.1.el6.i686.rpm warning: ftp-0.17-51.1.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:ftp ########################################### [100%] [root@localhost Packages]# rpm -ivh lftp-4.0.9-1.el6.i686.rpm warning: lftp-4.0.9-1.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:lftp ########################################### [100%]
启动ftp服务器端的服务(服务名为vsftpd),客户端才能够访问。网络
[root@localhost Packages]# service vsftpd status vsftpd is stopped [root@localhost Packages]# service vsftpd start Starting vsftpd for vsftpd: [ OK ]
进入/var/ftp/pub/目录,并建立一个文件fileoracle
[root@localhost Packages]# cd /var/ftp/pub/ [root@localhost pub]# echo "hello" > file [root@localhost pub]# ll total 4 -rw-r--r--. 1 root root 6 Jul 21 10:40 file
以匿名用户登陆到服务器,默认访问目录是/var/ftp/,咱们能够下载file到当前目录,注意,以匿名用户登陆不能进行上传操做。微信公众平台
[Wentasy@localhost test]$ lftp 169.254.140.100 lftp 169.254.140.100:/> get file get: Access failed: 550 Failed to open file. lftp 169.254.140.100:/> ls drwxr-xr-x 2 0 0 4096 Jul 21 02:40 pub lftp 169.254.140.100:/> cd pub lftp 169.254.140.100:/pub> pwd ftp://169.254.140.100/pub lftp 169.254.140.100:/pub> get file 6 bytes transferred lftp 169.254.140.100:/pub> exit [Wentasy@localhost test]$ ll total 4 -rw-rw-r--. 1 Wentasy Wentasy 6 Jul 21 10:40 file [Wentasy@localhost test]$ echo "hello world" > upload [Wentasy@localhost test]$ ll total 8 -rw-rw-r--. 1 Wentasy Wentasy 6 Jul 21 10:40 file -rw-rw-r--. 1 Wentasy Wentasy 12 Jul 21 10:46 upload [Wentasy@localhost test]$ lftp 169.254.140.100 lftp 169.254.140.100:~> put /home/Wentasy/test/upload . put: Access failed: 550 Permission denied. (upload) put: /home/Wentasy/test/.: Is a directory lftp 169.254.140.100:/> put /home/Wentasy/test/upload /root put: Access failed: 550 Permission denied. (upload) put: /root: Permission denied
以普通用户登陆,注意,通常不建议采用root用户登陆,并且生产环境也不会让你以root用户登陆。用普通用户登陆有两种方式:oop
[Wentasy@localhost test]$ lftp Wentasy@169.254.140.100 Password: lftp Wentasy@169.254.140.100:~> exit [Wentasy@localhost test]$ lftp -u Wentasy 169.254.140.100 Password: lftp Wentasy@169.254.140.100:~> exit
登陆成功后,咱们进行下载(get)、上传(put)、上传目录(mirror-R)、下载目录(mirror)操做。google
lftp Wentasy@169.254.140.100:~> put /home/Wentasy/test/upload 12 bytes transferred lftp Wentasy@169.254.140.100:~/test> mirror /home/Wentasy/test/ . Total: 1 directory, 3 files, 0 symlinks lftp Wentasy@169.254.140.100:~/test> mirror -R /home/Wentasy/test2 . Total: 1 directory, 3 files, 0 symlinks New: 3 files, 0 symlinks To be removed: 0 directories, 3 files, 0 symlinks
ftp使用方法
ftp [-vdng] [用户名:密码@<FQDN>]|<IP地址>|
< 主机名> <IP地址>:须要链接的FTP服务器的IP地址FQDN
-v :显示远程服务器的全部响应信息
-d :使用调试方式访问FTP服务器
-n :限制ftp的自动登陆,即当登陆到FTP服务器时,不自动执行 .netrc文件
进入FTP中能够可使用的命令详解
![命令[参数]] :在FTP客户端中执行命令
open <FQDN>|<IP地址>:打开指定的FTP服务器
bye :退出FTP会话过程
cd 目录:切换FTP服务器的当前目录。
dir [目录][本地文件]:显示FTP服务器目录,并将结果存入本地文件
put 文件:将单个文件上传到FPT服务器
mput: 将多个文件上传到FTP服务器
get 文件:从FTP服务器下载单个文件到本地当前目录
mget 文件:从FTP服务器下载多个文件到本地当前目录
delete 文件名:FTP服务器上的文件
case :在使用mget时,将远程主机文件名中的大写转为小写字母
pwd :显示远程主机的当前工做目录。
rmdir 目录名:删除FTP服务器上的目录
lftp命令使用
lftp ftp://[用户名:密码@]<FQDN>|<IP地址> [:端口]
lftp ftp://<FQDN>|<IP 地址> -p port -u 用户名,密码
help:查看所有可操做的命令
ls : 显示FTP服务器文件列表
!ls: 显示本地文件列表
cd: 切换远端目录
!cd: 切换本地目录
get: 从FTP服务器下载单个文件到本地当前目录
mget: 从FTP服务器下载多个文件到本地当前目录
pget :使用多个线程来下载远端文件
put : 将单个文件上传到FTP服务器
mput :将多个文件上传到FTP服务器
mv :移动FTP服务器上的文件
rm: 删除FTP服务器上的文件 (使用参数 -r 递归删除)
mrm: 删除FTP服务器上的多个目录
mkdir :在FTP服务器上创建目录
pwd : 显示日前FTP服务器全部目录
lpwd: 显示本地目录
exit :退出ftp会话过程
参考资料
http://baike.baidu.com/view/103832.htm?fromId=369
http://www.cnblogs.com/hnrainll/archive/2011/02/16/1956538.html
http://www.linuxidc.com/Linux/2012-10/73157.htm
个人邮箱:wgbno27@163.com 新浪微博:@Wentasy27 微信公众平台:JustOracle(微信号:justoracle) 数据库技术交流群:336882565(加群时验证 From CSDN XXX) Oracle交流讨论组:https://groups.google.com/d/forum/justoracle By Larry Wen
![]() |
![]() ![]() |
@Wentasy 博文仅供参考,欢迎你们来访。若有错误之处,但愿批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客] |