文件傳輸協議(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博客] |