linux系統ftp命令

先來一段簡單的ftp 下載腳本linux

ftp -i -n<<EOFshell

open 14.2.33.211瀏覽器

user etl etl服務器

cd /etlfile/ftpfile編輯器

lcd /etlfile/getfile工具

binary編碼

prompt.net

mget *命令行

prompt線程

close

bye

EOF

ftp安裝部分,操做步驟以下:

可使用yum命令直接安裝ftp

# yum install vsftpd

ftp服務的開啓與關閉命令:

開啓:# service vsftpd start

關閉:# service vsftpd stop

安裝成功後,能夠在本地使用ftp軟件鏈接,默認帳號是虛擬機的帳號和密碼。

第一次安裝,開啓後請重啓下ftp服務service vsftpd restart(若防火牆沒關閉,請關閉防火牆)

 

有關FTP(客戶端,服務器搭建這裏不講)有不少,大致分爲命令行和GUI圖形界面的軟件。

1,圖形界面的有

gftp

gnome下ftp客戶端

crossftp

基於Java的穩定ftp客戶端和同步工具。優良的中文/Unicode支持。

Kftpgrabber

KDE下ftp客戶端,支持編碼選擇。對中文支持較好

filezilla

對中文支持好

krusader

也能夠經過瀏覽器輸入ftp://ip使用

若是有喜歡的能夠經過apt-get 或者 aptitude 安裝。

2,CLI(命令行)主要有ftp 和 lftp 

(1)ftp

1. 鏈接ftp服務器

  格式:ftp [hostname| ip-address]

  a)在linux命令行下輸入:ftp 10.18.34.115 

  b)服務器詢問你用戶名和口令,分別輸入yint和相應密碼,待認證經過便可。

 

    或者用下面的格式  

   ftp - -i  -n  IP_ADDRESS

  user USERNAME PASSWORD

 

    好比:

    ftp -i -n 172.17.17.17

    user  PUB    123456

 

也能夠本身寫個腳本自動登陸。

 

 

cyq@cyq-desktop:~/桌面/shell$ cat ftp.sh

#!/bin/sh

ftp -i -n  172.17.17.17

<< !

user  PUB    123456

!

 

 

這樣就能夠自動登陸了。

 

  2. 下載文件

  下載文件一般用get和mget這兩條命令。

  a) get 

  格式:get [remote-file] [local-file]

  將文件從遠端主機中傳送至本地主機中.

  如要獲取服務器上E:/rose/1.bmp,則

  ftp> get /rose/1.bmp 1.bmp (回車)

  b) mget      

  格式:mget [remote-files]

  從遠端主機接收一批文件至本地主機.

  如要獲取服務器上E:/rose/下的全部文件,則

  ftp> cd /rose

  ftp> mget *.* (回車)

  注意:文件都下載到了linux主機的當前目錄下。好比,在 /root/yint下運行的ftp命令,則文件都下載到了/root/yint下。

  3.上傳文件

  a) put

  格式:put local-file [remote-file]

  將本地一個文件傳送至遠端主機中.

  如要把本地的1.bmp傳送到遠端主機E:/rose,並更名爲333.bmp

  ftp> put 1.bmp /rose/333.bmp (回車)

  b) mput

  格式:mput local-files

  將本地主機中一批文件傳送至遠端主機.

  如要把本地當前目錄下全部bmp文件上傳到服務器E:/rose 下

  ftp> cd /rose (回車)

  ftp> mput *.bmp (回車)

  注意:上傳文件都來自於主機的當前目錄下。好比,在 /root/yint下運行的ftp命令,則只有在/root/yint下的文件linux纔會上傳到服務器E:/rose 下。

  4. 斷開鏈接

  bye:中斷與服務器的鏈接。

  ftp> bye (回車)

(2)lftp

在用lftp訪問國內一些ftp服務器時,每每看到的中文是亂碼,這是因爲服務器和本地編碼不一致形成的。

解決辦法:

在主目錄下新建一個文件~/.lftprc或者~/.lftp/rc

好比我在終端中輸入:

gedit ~/.lftprc  #在當前目錄下創建.lftprc文件

而後在彈出的對話框中輸入如下內容:

debug 3

set ftp:charset GBK

set file:charset UTF-8

#set ftp:passtive-mode no

#alias utf8 " set ftp:charset UTF-8"

#alias gbk " set ftp:charset GBK"

 

上面的這幾行的意思是

設置本地和ftp服務器的編碼方式

alias 是使用別名命令

若是對於常用不一樣編碼的 ftp server 的朋友,或常用不一樣的選項的,能夠設置一些別名,這樣會方便不少。 
好比:

我常常訪問 gbk 編碼的 ftp, 還有 utf8 編碼的,那麼我在 ~/.lftp 中這樣寫 

代碼:

alias   gbk  set ftp:charset gbk; set file:charset UTF-8
alias   utf8 set ftp:charset UTF-8; set file:charset UTF-8

 

那麼當我訪問一個 utf8 站點的時候,若是發現亂碼,只要在 lftp 的命令提示符號下面輸入 utf8 就能夠將編碼調整正常。同理,若是訪問 gbk 的發現亂碼就輸入 gbk, 立刻正常。

 

下面講解使用lftp

一、登陸ftp

代碼:

lftp 用戶名:密碼@ftp地址:傳送端口(默認21)

例如: $ lftp test:123456@172.17.17.17

    


也能夠先不帶用戶名登陸,而後在接口界面下用login命令來用指定帳號登陸,密碼不顯示。

lftp user@site:port

例如:$ lftp test@172.17.17.17

 

      口令: 

而後就進入了。(這裏輸入的口令是密碼,linux下密碼不顯示)

二、查看文件與改變目錄

代碼:

ls
cd 對應ftp目錄

 

在lftp終端中,前面帶一個l的命令例如lcd,指的是local,就是在本機的操做,而對應的沒有這個l的,都是對ftp site的操做。還有就是要執行本地終端命令,也能夠用前面帶一個!的方式。這樣,配合起來,終端,本地的操做都很放遍。
例如,查看ftp上全部的以mp3爲擴展名的文件:

代碼:

find . -name "*.mp3"

 

代碼:

lftp test@172.17.17.17:/> lcd

 

lcd 成功, 本地目錄=/home/cyq

 

lftp test@172.17.17.17:/> 

 

 

三、下載
get固然是能夠的,還能夠

代碼:

mget -c *.pdf

 

把全部的pdf文件以容許斷點續傳的方式下載。m表明multi

代碼:

mirror aaa/

 

將aaa目錄整個的下載下來,子目錄也會自動複製

代碼:

pget -c -n 10 file.dat

 

以最多10個線程以容許斷點續傳的方式下載file.dat
能夠經過設置pget:default-n的值而使用默認值。

 

四、上傳
一樣的put,mput,都是對文件的操做,和下載相似。

代碼:

mirror -R 本地目錄名

 

將本地目錄以迭代(包括子目錄)的方式反向上傳到ftp site。

 

五、模式設置。

代碼:

set ftp:charset gbk

 

遠程ftp site用gbk編碼,對應的要設置爲utf8,只要替換gbk爲utf8便可。

代碼:

set file:charset utf8

 

本地的charset設定爲utf8,若是你是gbk,相應改掉。

 

代碼:

set ftp:passive-mode 1

 

使用被動模式登陸,有些site要求必須用被動模式或者主動模式才能夠登陸,這個開關就是設置這個的。0表明不用被動模式。

 

六、書籤
其實命令行也能夠有書籤,在lftp終端提示符下:

代碼:

bookmark add ustc

 

就能夠把當前正在瀏覽的ftp site用ustc做爲標籤儲存起來。之後在shell終端下,直接

代碼:

lftp ustc

 

就能夠自動填好用戶名,密碼,進入對應的目錄了。

 

代碼:

bookmark edit 

 

會調用編輯器手動修改書籤。固然,也能夠看到,這個書籤其實就是個簡單的文本文件。密碼,用戶名均可以看到。 

 

七、配置文件 
/etc/lftp.conf 
通常,我會添加這幾行: 

引用:

set ftp:charset gbk
set file:charset utf8
set pget:default-n 5

 

這樣,就不用每次進入都要打命令了。其餘的set 能夠本身tab而後help 來看。 

 

下面是經常使用命令

ls 

顯示遠端文件列表(ils 顯示本地文件列表)。# l 的意思就是local ils比較特殊

cd 

切換遠端目錄(lcd 切換本地目錄)。 

get

下載遠端文件。 

mget

下載遠端文件(能夠用通配符也就是 *)。 

pget

使用多個線程來下載遠端文件, 預設爲五個。 

mirror

下載/上傳(mirror -R)/同步 整個目錄。 

put

上傳文件。 

mput

上傳多個文件(支持通配符)。 

mv

移動遠端文件(遠端文件更名)。 

rm

刪除遠端文件。 

參數-r,遞歸刪除文件夾 

mrm

刪除多個遠端文件(支持通配符)。 

mkdir

創建遠端目錄。 

rmdir

刪除遠端目錄。 

pwd

顯示目前遠端所在目錄(lpwd 顯示本地目錄)。 

du

計算遠端目錄的大小 

set net:limit-rate 10000,10000 

限制上傳下載各爲10KB/s 

set ftp:charset gbk

設置遠程ftp site用gbk編碼 

!

執行本地 shell的命令(因爲lftp 沒有 lls, 故可用 !ls 來替代) 

lcd

切換本地目錄 

lpwd

顯示本地目錄 

alias

定義別名 

bookmark

設定書籤。 

exit

退出ftp 

相關文章
相關標籤/搜索