不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > linux傳輸文件命令

linux傳輸文件命令

時間: 佳洲1085 分享

linux傳輸文件命令

  linux系統(tǒng)下我們經(jīng)常要互相傳送文件,以下幾個命令就可以做到。下面由學習啦小編為大家整理了linux傳輸文件命令的相關知識,希望大家喜歡!

  linux傳輸文件命令詳解

  linux傳輸文件命令1.sftp

  Secure Ftp 是一個基于SSH安全協(xié)議的文件傳輸管理工具。由于它是基于SSH的,會在傳輸過程中對用戶的密碼、數(shù)據(jù)等敏感信息進行加密,因此可以有效的防止用戶信息在傳輸?shù)倪^程中被竊取,比FTP有更高的安全性。在功能方面與FTP很類似,不僅可以傳輸文件數(shù)據(jù),而且可以進行遠程的文件管理(如建立,刪除,查看文件列表等操作)。Sftp與ftp雖然只有一字之差,但基于的傳輸協(xié)議卻是不同的。因此不能用sftp client去連接ftp server 也不能用 ftp client 去連接 sftp server。

  建立連接:sftp user@host

  從本地上傳文件:put localpath

  下載文件:get remotepath

  與遠程相對應的本地操作,只需要在命令前加上”l” 即可,方便好記。

  例如:lcd lpwd lmkdir

  linux傳輸文件命令2.scp

  SCP :secure copy (remote file copy program) 也是一個基于SSH安全協(xié)議的文件傳輸命令。與sftp不同的是,它只提供主機間的文件傳輸功能,沒有文件管理的功能。

  復制local_file 到遠程目錄remote_folder下

  scp local_file remote_user@host:remote_folder

  復制local_folder 到遠程remote_folder(需要加參數(shù) -r 遞歸)

  scp –r local_folder remote_user@host:remote_folder

  以上命令反過來寫就是遠程復制到本地

  linux傳輸文件命令3.sz/rz

  sz/rz 是基于ZModem傳輸協(xié)議的命令。對傳輸?shù)臄?shù)據(jù)會進行核查,并且有很好的傳輸性能。使用起來更是非常方便,但前提是window端需要有能夠支持ZModem的telnet或者SSH客戶端,例如secureCRT。

  首先需要在secureCRT中可以配置相關的本地下載和上傳目錄,然后用rz、sz命令即可方便的傳輸文件數(shù)據(jù)。

  下載數(shù)據(jù)到本地下載目錄:sz filename1 filename2 …

  上傳數(shù)據(jù)到遠程:執(zhí)行rz –be 命令,客戶端會彈出上傳窗口,用戶自行選擇(可多選)要上傳的文件即可。

  相關資料:

  2.XMODEM、YMODEM、ZMODEM : http://web.cecs.pdx.edu/~rootd/catdoc/guide/TheGuide_226.html

  3.Wiki SCP :http://en.wikipedia.org/wiki/Secure_copy

  因為工作原因,需要經(jīng)常在不同的服務器見進行文件傳輸,特別是大文件的傳輸,因此對linux下不同服務器間數(shù)據(jù)傳輸命令和工具進行了研究和總結。主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。

  rcp

  rcp不是一種安全的的傳輸文件的方式,rcp通過rsh(rsh見下面)來執(zhí)行遠程命令,要使用rcp必須經(jīng)過一些配置,現(xiàn)在rcp已經(jīng)被scp取代了,常用scp來進行文件傳輸。要使用rcp,需要具備以下條件:

  (1)如果系統(tǒng)中有/etc/hosts 文件,應確保該文件包含要與之進行通信的遠程主機信息:internet_address official_name alias。例如:1.186.10.*** blade1.ibm.com.cnblade

  (2).rhosts 文件:.rhosts 文件位于遠程系統(tǒng)的根目錄下,其中包含本地系統(tǒng)的名稱和本地登錄名。例如,遠程系統(tǒng)的 .rhosts 文件中的項可能是:blade1 root;其中,blade1 是本地系統(tǒng)的名稱,root 是本地登錄名。這樣,blade1 上的 root 即可在包含 .rhosts 文件的遠程系統(tǒng)中來回復制文件。

  配置過程:

  (1) 在雙方root用戶根目錄下建立.rhosts文件,并將雙方的hostname加進去.在此之前應在雙方的 /etc/hosts文件中加入對方的IP和hostname

  (2) 把rsh服務啟動起來,redhat默認是不啟動的。方法:用執(zhí)行ntsysv命令,在rsh選項前用空格鍵選中,確定退出。然后執(zhí)行:service xinetd restart即可。如果沒有rsh,請見下面rsh部分

  (3) 到/etc/pam.d/目錄下,把rsh文件中的auth required /lib/security/pam_securetty.so一行用“#”注釋掉即可。(只有注釋掉這一行,才能用root用戶登錄)

  命令使用:

  rcp [options] [[user@]host1:]file1 ...[[user@]host2:]file2

  options:

  -r 遞歸地把源目錄中的所有內(nèi)容拷貝到目的目錄中。

  -p 試圖保留源文件的修改時間和模式,忽略umask。

  rsh(remote shell,它不夠安全):rsh使用條件同rcp,rsh配置過程(以root為例)

  (1) 在服務器上運行/urs/bin/ntsysv選中rexec,rlogin,rsh三項服務。

  (2) 運行#/sbin/service xinetd restart啟動該三項服務。

  (3) 運行echo"rexec">>/etc/securetty; echo"rlogin">>/etc/securetty; echo"rsh">>/etc/securetty

  (4) 在服務器上運行echo"你的ip地址root">>/root/.rhosts或者echo"你的主機名root">>/root/.rhosts且確保在服務器上的/etc/hosts中有主機名和ip地址的映射關系

  (5) 到/etc/pam.d/目錄下,把rexec, rlongin, rsh文件中的auth required /lib/security/pam_securetty.so 一行用“#”注釋掉即可。(只有注釋掉這一行,才能用root用戶登錄)

  (6) rsh命令用法:rshremote-sytem-neame Linux-command,例如:rsh blade1 ls /home/root

  linux傳輸文件命令4.scp

  scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用來進行遠程文件拷貝的。數(shù)據(jù)傳輸使用 ssh,并且和ssh 使用相同的認證方式,提供相同的安全保證。 與rcp 不同的是,scp 在需要進行驗證時會要求你輸入密碼或口令。

  scp [options] [本地用戶名@IP地址:]file1 [遠程用戶名 @IP 地址 :] file2

  options:

  -v 用來顯示進度,可以用來查看連接,認證,或是配置錯誤。

  -C 使能壓縮選項。

  -c 選擇使用那個加密算法(具體對應到ssh的-c cipher-spec,這個參數(shù)值會被傳給ssh,可選擇值3des,blowfish,des),使用blowfish會快很多,可以參看man ssh 中的-c cipher-spec

  -P 選擇端口

  -r 遞歸拷貝整個目錄

  -l 限制使用帶寬,Kbit/s

  -o 指定傳給ssh的一些參數(shù)值,比如Compression=yes

  -p 保留文件的修改時間等信息。

  linux傳輸文件命令5.rsync

  rsync是rcp的替代品之一,rsync 是一款高效的遠程數(shù)據(jù)備份和鏡象工具,可快速地同步多臺主機間的文件,其具有如下特性:

  l 支持鏈接、所有者、組信息以及權限信息的拷貝;

  l 通過遠程 shell(ssh, rsh)進行傳輸;

  l 無須特殊權限即可安裝使用;

  l 流水線式文件傳輸模式,文件傳輸效率高;

  l 支持匿名操作;

  需要提及的是 rsync 以其優(yōu)越的性能優(yōu)勢區(qū)別于其它幾種 Linux 文件傳輸方法,其同步文件的速度相當快,這主要歸功于 rsync 所使用的傳輸算法。簡而言之 rsync 算法能在相當短的時間內(nèi)計算出需要備份的數(shù)據(jù),只對源文件與目標文件的不同之處進行傳輸,從而降低網(wǎng)絡中傳輸?shù)臄?shù)據(jù)量,以此達到快速備份鏡像的目的。下面通過一典型應用場景來描述 rsync 算法的基本原理:主機 A 與主機 B 均有對同一文件的拷貝,用戶對主機 A 上的拷貝進行更新,主機 B 通過 rsync 算法對更新后的文件進行同步。以下是該算法的實現(xiàn)步驟:

  (1) 主機 B 將原始拷貝劃分成大小為 N 的不重合的若干塊(文件末尾部分分塊大小可能不足 N),并對這些數(shù)據(jù)塊進行兩種不同方式的校驗:32 位的滾動弱校驗、128 位的 MD4 強校驗。弱校驗較之強校驗計算速度快。

  (2) 主機 B 將每個數(shù)據(jù)塊的弱校驗、強校驗結果發(fā)送給主機 A 。

  (3) 主機 A 對更新后的文件拷貝中的每個長度為 N 的數(shù)據(jù)塊進行弱校驗并與從 B 接收到的弱校驗值進行匹配,若相同再進行強校驗匹配。由于弱校驗的滾動特性可以快速地篩選出需要進行同步的數(shù)據(jù)塊。該算法的運算量主要集中在主機 A 上。

  通過上述計算,主機 A 將文件的不同部分發(fā)送給 B,B 接收到兩個拷貝之間的不同之處,從而同步得到更新后的文件。通過如上方式,rsync 避免了對相同數(shù)據(jù)的傳輸,減少了網(wǎng)絡帶寬的浪費。在時間上整個過程中需一個往返,從某種程度上也保證了 rsync 的優(yōu)越性能。

  Rsync可以通過兩種方式來連接遠程服務器,一種是通過類shell命令的方式,一種是通過rsync daemon的方式,rsync daemon需要進行安裝和配置,具體如下:

  可從官方網(wǎng)站http://rsync.samba.org/ 上下載安裝 rsync 的最新版本。使用時需將 rsync 分別安裝于服務端和客戶端,服務端和客戶端使用同一個 rsync 軟件包來實現(xiàn)遠程鏡像和定期同步更新。需要說明的是一個 rsync 服務端可同時備份多個客戶端的數(shù)據(jù);多個服務端備份一個客戶端的數(shù)據(jù)。 rsync 默認端口為 873,服務器在該端口接收客戶的匿名或者認證方式的備份請求。

  rsync 服務端在使用之前需要進行必要的配置,其配置文件為 /etc/rsyncd.conf,進行認證、訪問、日志記錄等控制。配置文件包括全局參數(shù)、模塊參數(shù)的設置。 rsyncd.conf 文件中 [module] 之前的所有參數(shù)為全局參數(shù),也可以在全局參數(shù)部分定義模塊參數(shù),在這種情況下該參數(shù)的值就是所有模塊的默認值。全局參數(shù)設置程序使用的端口號,指定消息文件、日志文件 pid 文件以及發(fā)送日志消息的級別。模塊參數(shù)主要定義服務端哪個目錄需要被同步。用戶可根據(jù)不同的需要指定多個模塊,每個模塊對應需要備份的一個目錄樹,即若有 N 個需要備份的目錄樹,則需要 N 個模塊與之對應。模塊中可以定義許多參數(shù),常見參數(shù)如下。

  l Comment 模塊信息描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶。默認沒有描述定義。

  l Path 指定供備份的目錄路徑,必須指定該參數(shù)。

  l max connections 指定最大并發(fā)連接數(shù)以保護服務器,超過限制的連接請求將被告知隨后再試。默認值為 0,即沒有限制。

  l log file 指定日志文件

  l read only 設定是否允許客戶上載文件。若為 true 任何上載請求均會失敗,若為 false 且客戶端擁有服務器目錄讀寫權限則可以上載。默認值為 true 。

  l write only 設定是否允許客戶下載文件。若為 true 任何下載請求均會失敗,默認值為 false 。

  l List 設定當客戶請求可以使用的模塊列表時,是否列出該模塊。若為 false,則創(chuàng)建隱藏的模塊。默認值為 true 。

  l fake super 允許文件享有所有權限,而無需后臺服務以 root 權限進行操作。

  l Filter 設置過濾列表以決定哪些文件可由客戶端訪問。

  l hosts allow 指定允許客戶連接的 IP 地址??梢詾閱蝹€ IP 地址或整個網(wǎng)段。多個 IP或網(wǎng)段需要以空格隔開。默認是允許所有主機連接。

  l dont compress 指定不進行壓縮處理即可傳輸?shù)奈募?,默認值是 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

  l pre-xfer exec, post-xfer exec 設置可在文件傳輸前/后執(zhí)行的命令。若在文件傳輸前執(zhí)行的命令失敗,則取消本次傳輸操作。

  需要注意的是服務器端啟動:/usr/bin/rsync--daemon --config=/etc/rsyncd/rsyncd.conf

  連接遠程服務器的兩種方式的基本語法

  (1) 通過遠程 shell 方式:

  l rsync [OPTION] [USER@]HOST:SRC DEST:用遠程 shell(如 ssh, rsh)實現(xiàn)將遠程機器的內(nèi)容拷貝到本地機器。 SRC 地址路徑中以單個冒號 ":" 進行分隔。

  l rsync [OPTION] SRC [USER@]HOST:DEST:使用遠程 shell(如 rsh、ssh)實現(xiàn)本地機器的內(nèi)容拷貝到遠程機器。 DEST 地址路徑中以單個冒號 ":" 進行分隔。

  (2) 通過 rsync daemon 方式:

  l rsync [OPTION] [USER@]HOST::SRC DEST 或rsync [OPTION]rsync://[USER@]HOST[:PORT]/SRC [DEST]:從遠程 rsync 服務器中拷貝文件到本地機。SRC 地址路徑中以雙冒號 "::" 進行分隔。

  l rsync [OPTION] SRC [USER@]HOST::DEST 或rsync [OPTION] SRCrsync://[USER@]HOST[:PORT]/DEST:從本地機器拷貝文件到遠程 rsync 服務器中。 DEST 地址路徑中以雙冒號 "::" 進行分隔。

  如果 rsync 命令中只指定 SRC 參數(shù)而不指定 DEST 參數(shù),則意為顯示源文件列表而非進行同步拷貝。

  Options:

  options:

  -v,--verbose 詳細模式輸出

  -q,--quiet 精簡輸出模式

  -c,--checksum 打開校驗開關,強制對文件傳輸進行校驗

  -a,--archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD

  -r,--recursive 對子目錄以遞歸模式處理

  -R,--relative 使用相對路徑信息

  -b,--backup 創(chuàng)建備份,也就是對于目的已經(jīng)存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不同的備份文件前綴。

  --backup-dir將備份文件(如~filename)存放在在目錄下。

  -suffix=SUFFIX定義備份文件前綴

  -u,--update 僅僅進行更新,也就是跳過所有已經(jīng)存在于DST,并且文件時間晚于要備份的文件。(不覆蓋更新的文件)

  -l,--links 保留軟鏈結

  -L,--copy-links 想對待常規(guī)文件一樣處理軟鏈結

  --copy-unsafe-links僅僅拷貝指向SRC路徑目錄樹以外的鏈結

  --safe-links忽略指向SRC路徑目錄樹以外的鏈結

  -H,--hard-links 保留硬鏈結

  -p,--perms 保持文件權限

  -o,--owner 保持文件屬主信息

  -g, --group 保持文件屬組信息

  -D,--devices 保持設備文件信息

  -t,--times 保持文件時間信息

  -S,--sparse 對稀疏文件進行特殊處理以節(jié)省DST的空間

  -n,--dry-run現(xiàn)實哪些文件將被傳輸

  -W,--whole-file 拷貝文件,不進行增量檢測

  -x,--one-file-system 不要跨越文件系統(tǒng)邊界

  -B,--block-size=SIZE 檢驗算法使用的塊尺寸,默認是700字節(jié)

  -e,--rsh=COMMAND 指定使用rsh、ssh方式進行數(shù)據(jù)同步

  --rsync-path=PATH指定遠程服務器上的rsync命令所在路徑信息

  -C,--cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸?shù)奈募?/p>

  --existing僅僅更新那些已經(jīng)存在于DST的文件,而不備份那些新創(chuàng)建的文件

  --delete刪除那些DST中SRC沒有的文件

  --delete-excluded同樣刪除接收端那些被該選項指定排除的文件

  --delete-after傳輸結束以后再刪除

  --ignore-errors及時出現(xiàn)IO錯誤也進行刪除

  --max-delete=NUM最多刪除NUM個文件

  --partial保留那些因故沒有完全傳輸?shù)奈募允羌涌祀S后的再次傳輸

  --force強制刪除目錄,即使不為空

  --numeric-ids不將數(shù)字的用戶和組ID匹配為用戶名和組名

  --timeout=TIMEIP超時時間,單位為秒

  -I,--ignore-times 不跳過那些有同樣的時間和長度的文件

  --size-only當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間

  --modify-window=NUM決定文件是否時間相同時使用的時間戳窗口,默認為0

  -T--temp-dir=DIR 在DIR中創(chuàng)建臨時文件

  --compare-dest=DIR同樣比較DIR中的文件來決定是否需要備份

  -P等同于 --partial

  --progress顯示備份過程

  -z,--compress 對備份的文件在傳輸時進行壓縮處理

  --exclude=PATTERN指定排除不需要傳輸?shù)奈募J?/p>

  --include=PATTERN指定不排除而需要傳輸?shù)奈募J?/p>

  --exclude-from=FILE排除FILE中指定模式的文件

  --include-from=FILE不排除FILE指定模式匹配的文件

  --version打印版本信息

  --address綁定到特定的地址

  --config=FILE指定其他的配置文件,不使用默認的rsyncd.conf文件

  --port=PORT指定其他的rsync服務端口

  --blocking-io對遠程shell使用阻塞IO

  -stats給出某些文件的傳輸狀態(tài)

  --progress在傳輸時現(xiàn)實傳輸過程

  --log-format=formAT指定日志文件格式

  --password-file=FILE從FILE中得到密碼

  --bwlimit=KBPS限制I/O帶寬,KBytes per second

  -h,--help 顯示幫助信息

  實例:

  (1) 查看服務端文件及列表:

  l rsync 9.186.110.53::查看服務端可用的模塊列表以及注釋信息;rsync ibmuser@9.186.110.53::www/查看服務端 www 模塊中的目錄及文件列表(使用 rsyncd 用戶認證方式)

  l rsync ibmuser@9.186.110.53:/var/www/html/查看服務端/var/www/html 目錄中的內(nèi)容(使用服務端的系統(tǒng)用戶進行驗證,如 ibmuser)

  (2) 保持客戶端與服務端的數(shù)據(jù)同步:

  l rsync -avz ibmuser@9.186.110.53::www/ /backup1/使用后臺服務方式將服務端www 模塊下的內(nèi)容備份到本地 /backup1 目錄中,備份時保留原有權限、屬性、屬主及符號連接等,并使用壓縮方式加快數(shù)據(jù)傳輸。

  l rsync – avzibmuser@9.186.110.53:/var/www/html /backup2/使用 ssh 方式將遠程的/var/www/html 目錄備份到本地 /backup2/ 目錄下

  l rsync -avz --deleteibmuser@9.186.110.53::www/ /backup3/將遠程 www 模塊備份到本地/backup3/ 目錄中,同時進行同步目錄,刪除本地目錄中多余的文件。

  (3) 當服務端的數(shù)據(jù)出現(xiàn)問題時,需要通過客戶端的數(shù)據(jù)對服務端進行恢復,只要客戶端有服務端的寫入權限,即可通過調(diào)換 rsync 命令的 SRC、DEST 參數(shù)進行恢復。

  linux傳輸文件命令6.ftp

  ftp命令使用文件傳輸協(xié)議(FileTransfer Protocol ,FTP)在本地主機和遠程主機之間或者兩個遠程主機之間進行文件傳輸。FTP 協(xié)議允許數(shù)據(jù)在不同文件系統(tǒng)的主機之間傳輸。盡管這個協(xié)議在傳輸數(shù)據(jù)上提供了高適應性,但是它并沒有嘗試去保留一個特定文件系統(tǒng)上的文件屬性(例如一個文件的保護模式或者修改次數(shù))。而且 FTP 協(xié)議很少對一個文件系統(tǒng)的整體結構作假定,也不提供這樣的功能,比如遞歸的拷貝子目錄。在使用 ftp 命令時,需要注意 FTP 協(xié)議的這些特性。當需要保留文件屬性或者需要遞歸的拷貝子目錄時,可以使用 rcp/scp 等命令。

  如果需要將文件以ftp傳輸?shù)侥康姆掌魃希仨氃谀康姆掌魃习惭bftp server,基本的安裝和啟動過程如下:

  根據(jù)服務對象的不同,F(xiàn)TP服務可以分為兩類:一類是系統(tǒng)FTP服務器,它只允許系統(tǒng)上的合法用戶使用;另一類是匿名FTP服務器,它允許任何人登錄到FTP服務器,和服務器連接后,在登錄提示中輸入Anonymous,即可訪問服務器。

  Yum list *ftp* (找到可用的Ftp包)

  sudo yum install ftp包

  手工啟動和關閉:啟動:/usr/sbin/ftprestart 關閉:/usr/sbin/ftpshut

  FTP服務器的配置:為了確保FTP服務器安全,必須設置一些重要的配置文件,以更好地控制用戶的訪問權限。這些配置文件是:/etc/ftpusers;/etc/ftpconversions;/etc/ftp-groups;/etc/ftpphosts;/etc/ftpaccess。利用這些文件,能夠非常精確地控制哪些人、在什么時間、從什么地點可以連接服務器,并且可以對他們連接后所做的工作進行檢查跟蹤。

  (1) /etc/ftpusers:該文件夾中包含的用戶不能通過FTP登錄服務器,有時將需要禁止的用戶賬號寫入文件/etc/ftpuser中,這樣就可以禁止一些用戶使用FTP服務。

  (2) /etc/ftpconversions:用來配置壓縮/解壓縮程序。

  (3) /etc/ftpgroups:創(chuàng)建用戶組,這個組中的成員預先定義可以訪問FTP服務器。

  (4) /etc/ftpphosts:用來根據(jù)禁止或允許遠程主機對特定賬戶的訪問,例如:allow czc 192.168.0.0/24 deny cdd 10.0.0.0/8(表示允許czc用戶從192.168.0這個網(wǎng)段連線訪問,拒絕cdd從10.這個網(wǎng)段連線訪問)。

  (5) /etc/ftpaccess:是非常重要的一個配置文件,用來控制存取權限,文件中的每一行定義一個屬性,并對屬性的值進行設置。下面對它的一些常用配置做一點介紹:

  l 定義用戶類別:格式:class[類名] [real/guest/anonymous][IP地址] 功能:這個指令的功能設定FTP服務器上用戶的類別。并可對客戶端的IP地址進行限制,允許特定或者全部的IP地址訪問FTP服務器。

  l 登錄重試次數(shù):在命令行中輸入:loginfails 10,這表明如果10次還沒有登錄成功就切斷連線。

  l 密碼檢查:格式:passwd-check〈strictness〉 warn。是對匿名用戶的密碼使用方式的檢查,其中〈strictness〉是三個可能的字符串之一:None、Trivial、RFC822。若選None,表示將不對口令做任何檢查;若選Trivial,表示對口令有一定的要求,它需要在口令中至少要有一個@符號;若選RFC822,則表示最嚴格,要求E-mail地址必須遵守RFC822報文標題標準(如:czc@domain.com )。例如:passwd-check rfc822 warn,表明密碼的要求很嚴格,當密碼不符合規(guī)定時出現(xiàn)警告信息。

  l 登錄人數(shù)的限制:格式:limit[類別] [人數(shù)] [時間] [文件名]。設置指定類別在約定時間內(nèi)可以登錄FTP的人數(shù)。例如:limit remote Any/etc/many.msg,說明類別Remote類別在任何時間內(nèi)登錄人數(shù)不超過20個人,否則會顯示Many.msg警告信息。

  安裝、配置好FTP服務器后,只需要在命令提示符后輸入:FTP Servername,用主機名或希望連接的FTP服務器的IP地址代替Servername,按照提示輸入用戶名和口令,然后用標準的Linux上移或下移FTP服務器目錄結構。另外,也可以采用圖形化FTP程序,包括窗口式gFTP,可以借助Web瀏覽器去訪問FTP服務器。

  在登錄上ftp后,可以使用如下ftp命令進行操作:

  l FTP> ! 從 ftp 子系統(tǒng)退出到外殼

  l FTP> ? 顯示 ftp 命令說明,和 help 相同,格式:? [command]說明:[command]指定需要幫助的命令名稱。假如沒有指定 command,linux ftp命令參數(shù)將顯示全部命令的列表。

  l FTP> append 使用當前文檔類型配置將本地文檔附加到遠程電腦上的文檔。格式:append local-file [remote-file],說明:local-file 指定要添加的本地文檔,remote-file指定要添加 local-file 的遠程電腦上的文檔。假如省略了 remote-file,本地文檔名將被用作遠程文檔名。

  l FTP> ascii 將文檔傳送類型配置為默認的 ASCII。說明:linux ftp命令參數(shù)支持兩種文檔傳送類型,ASCII 碼和二進制圖像,在傳送文本文檔時應該使用ASCII。

  l FTP> bell 轉換響鈴以在每個文檔傳送命令完成后響鈴??默認情況下,鈴聲是關閉的。

  l FTP> binary(或bi) 將文檔傳送類型配置為二進制

  l FTP> bye(或by) 結束和遠程電腦的linux ftp命令參數(shù)會話并退出linux ftp命令參數(shù)。

  l FTP> cd 更改遠程電腦上的工作目錄。格式:cd remote-directory,說明:remote-directory 指定要更改的遠程電腦上的目錄。

  l FTP> close 結束和遠程服務器的linux ftp命令參數(shù)會話并返回命令解釋程式。

  l FTP> debug 轉換調(diào)試。當調(diào)試打開時,發(fā)送到遠程電腦的每個命令都打印,前面是字符串">"。默認情況下,調(diào)試是關閉的。

  l FTP> delete 刪除遠程電腦上的文檔。格式:delete remote-file,說明:remote-file 指定要刪除的文檔。

  l FTP> dir 顯示遠程目錄文檔和子目錄列表。格式:dir [remote-directory] [local-file],說明:remote-directory 指定要查看其列表的目錄。假如沒有指定目錄,將使用遠程電腦中的當前工作目錄。Local-file 指定要存儲列表的本地文檔。假如沒有指定,輸出將顯示在屏幕上。

  l FTP> disconnect 從遠程電腦斷開,保留linux ftp命令參數(shù)提示。

  l FTP> get 使用當前文檔轉換類型將遠程文檔復制到本地,格式:get remote-file [local-file],說明:remote-file 指定要復制的遠程文檔,Local-file指定要在本地電腦上使用的名稱,假如沒有指定,文檔將命名為 remote-file。

  l FTP>glob 轉換文檔名組合,組合允許在內(nèi)部文檔或路徑名中使用通配符(*和?),默認情況下,組合是打開的。

  l FTP>hash 轉換已傳輸?shù)拿總€數(shù)據(jù)塊的數(shù)字簽名 (#) 打印,數(shù)據(jù)塊的大小是2048 字節(jié),默認情況下,散列符號打印是關閉的。

  l FTP>help 顯示linux ftp命令參數(shù)命令說明。格式:help [command],  說明:command 指定需要有關說明的命令的名稱,假如沒有指定 command,linux ftp命令參數(shù)將顯示全部命令的列表。

  l FTP>lcd 更改本地電腦上的工作目錄,默認情況下,工作目錄是啟動linux ftp命令參數(shù)的目錄。格式:lcd [directory],說明:directory 指定要更改的本地電腦上的目錄,假如沒有指定directory,將顯示本地電腦中當前的工作目錄。

  l FTP>literal 將參數(shù)逐字發(fā)送到遠程linux ftp命令參數(shù)服務器,將返回單個的linux ftp命令參數(shù)回復代碼,格式:literal argument [ ...],說明:argument 指定要發(fā)送到linuxftp命令參數(shù)服務器的參數(shù)。

  l FTP>ls 顯示遠程目錄文檔和子目錄的縮寫列表,格式:ls [remote-directory] [local-file],說明:remote-directory 指定要查看其列表的目錄,假如沒有指定目錄,將使用遠程電腦中的當前工作目錄,local-file 指定要存儲列表的本地文檔??假如沒有指定,輸出將顯示在屏幕上。

  l FTP>mdelete 刪除遠程電腦上的文檔,格式:mdelete remote-files [ ...],說明:remote-files 指定要刪除的遠程文檔。

  l FTP>mdir 顯示遠程目錄文檔和子目錄列表,能夠使用 mdir 指定多個文檔,格式:mdir remote-files [ ...] local-file,說明:remote-files 指定要查看列表的目錄,必須指定 remote-files,請鍵入 - 使用遠程電腦上的當前工作目錄。local-file 指定要還原列表的本地文檔,請鍵入- 在屏幕上顯示列表。

  l FTP>mget 使用當前文檔傳送類型將遠程文檔復制到本地電腦,格式:mget remote-files [ ...],說明:remote-files 指定要復制到本地電腦的遠程文檔。

  l FTP>mkdir 創(chuàng)建遠程目錄,格式:mkdir directory,說明:directory 指定新的遠程目錄的名稱。

  l FTP>mls 顯示遠程目錄文檔和子目錄的縮寫列表,格式:mls remote-files [ ...] local-file,說明:remote-files 指定要查看列表的文檔??必須指定remote-files;,請鍵入- 使用遠程電腦上的當前工作目錄。local-file 指定要存儲列表的本地文檔,請鍵入 - 以在屏幕上顯示列表。

  l FTP>mput 使用當前文檔傳送類型將本地文檔復制到遠程電腦上。格式:mput local-files [ ...],說明:local-files 指定要復制到遠程電腦的本地文檔。

  l FTP>open 和指定的linux ftp命令參數(shù)服務器連接,格式:open computer [port],說明:computer 指定要連接的遠程電腦??能夠通過 IP 地址或電腦名稱指定電腦(DNS 或主機文檔必須可用),假如自動登錄打開(默認),ftp 還將嘗試自動將用戶登錄到linux ftp命令參數(shù)服務器port 指定用來聯(lián)系linux ftp命令參數(shù)服務器的端口號。

  l FTP>prompt 轉換提示,假如關閉提示時 mget 及 mput 傳送任何文檔,linux ftp命令參數(shù)在多文檔傳送過程中將提示允許您有選擇地檢索或存儲文檔,默認情況下,提示是打開的。

  l FTP>put 使用當前文檔傳送類型將本地文檔復制到遠程電腦上,格式:put local-file [remote-file],說明:local-file 指定要復制的本地文檔,remote-file指定要在遠程電腦上使用的名稱??假如沒有指定,文檔將命名為 local-file。

  l FTP>pwd 顯示遠程電腦上的當前目錄。

  l FTP>quit 結束和遠程電腦的linux ftp命令參數(shù)會話并退出linux ftp命令參數(shù)。

  l FTP>quote 將參數(shù)逐字發(fā)送到遠程linux ftp命令參數(shù)服務器,將返回單個的linux ftp命令參數(shù)回復代碼。

  l FTP>recv 使用當前文檔傳送類型將遠程文檔復制到本地電腦,Recv 和 get相同。格式:recv remote-file [local-file],說明:remote-file 指定要復制的遠程文檔,local-file指定要在本地電腦上使用的名稱,假如沒有指定,文檔將命名為 remote-file。

  l FTP>remotehelp 顯示遠程命令幫助,格式:remotehelp [command],說明:command 指定需要幫助的命令的名稱,假如沒有指定 command,linux ftp命令參數(shù)將顯示全部遠程命令的列表。

  l FTP>rename 重命名遠程文檔,格式:rename filename newfilename,說明:filename 指定要重命名的文檔,newfilename指定新的文檔名。

  l FTP>rmdir 刪除遠程目錄,格式:rmdir directory,說明:directory 指定要刪除的遠程目錄的名稱。

  l FTP>send 使用當前文檔傳送類型將本地文檔復制到遠程電腦上,Send 和put 相同,格式:send local-file [remote-file],說明:local-file 指定要復制的本地文檔,remote-file指定要在遠程電腦上使用的名稱,假如沒有指定,文檔將命名為 local-file。

  l FTP>status 顯示linux ftp命令參數(shù)連接和轉換的當前狀態(tài)。

  l FTP>trace 轉換數(shù)據(jù)包跟蹤,Trace 在運行l(wèi)inux ftp命令參數(shù)命令時顯示每個數(shù)據(jù)包的路由。

  l FTP>type 配置或顯示文檔傳送類型,格式:type [type-name],說明:type-name 指定文檔傳送類型,默認配置為 ascii,假如沒有指定type-name,將顯示當前的類型。

  l FTP>user 指定遠程電腦的用戶,格式:user username [password] [account],說明:user-name 指定登錄到遠程電腦所使用的用戶名,password 指定 user-name 的密碼,假如沒有指定,但必須指定,linux ftp命令參數(shù)會提示輸入密碼。account 指定登錄到遠程電腦所使用的帳戶,假如沒有指定account,但是需要指定,linux ftp命令參數(shù)會提示您輸入帳戶。

  l FTP>verbose 轉換 verbose 模式,假如打開,將顯示任何 linux ftp命令參數(shù)響應,在文檔傳送完成后,將同時顯示和傳送效率有關的統(tǒng)計信息,默認情況下,verbose 是打開的。

  linux傳輸文件命令7.sftp

  sftp(安全文件傳輸協(xié)議)與ftp 有著幾乎一樣的語法和功能。FTP 為 SSH的一部份,是一種傳輸檔案至 Blogger 伺服器的安全方式。它并不使用ftp守護進程(ftpd或wu-ftpd)來進行連接,而是有意義地增強系統(tǒng)的安全性。實際上,通過監(jiān)視一些系統(tǒng)中的log文件,可以注意到很多攻擊是針對于ftpd守護進程的。sftp避免了這些攻擊從而可以停止在wu-ftpd上潛在的危險。SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(端口號默認是22)來完成相應的連接操作。使用SFTP是非常安全的。但是,由于這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網(wǎng)絡安全性要求更高時,可以使用SFTP代替FTP。

  用法舉例:

  (1) sftproot@10.48.30.192:/root/test.sh(直接將192上的文件復制到本地)

  (2) sftproot@10.48.30.192:/root (直接連接到192的root目錄下,這樣就可以使用getput等命令了)

  sftp使用在數(shù)據(jù)連接上使用ssh2,所以文件的傳輸是盡可能地安全。使用sftp代替ftp兩個主要的的原因是:

  (1) password從不用明文傳輸,防止sniffer(嗅探器)的攻擊。

  (2) 數(shù)據(jù)在傳輸時被加密,使用刺探和修改連接非常困難。

  使用sftp2是非常簡單的。讓我們假設你使用了你的帳戶:myname通過sftp連按上了主機host1??梢允褂妹睿簊ftp myname@host1。當sftp2準備好了來接受連接時,它將顯示一個狀態(tài)提示符 sftp>。在sftp手冊中有完整的用戶可以使用的命令列表;其中有:

  l quit:從這個應用程序中退出。

  l cd directory:改變當前的遠程工作目錄。

  l lcd directory:改變當前的本地工作目錄。

  l ls [ -r ] [ -l ] [ file ... ]:列出在遠地服務器上的文件名。如果是目錄,則列出目錄的內(nèi)容。當命令行中指定了-r,則遞歸地顯示目錄樹。(默認情況下,子目錄并不被訪問)。當命令行中指定了-l,文件與目錄的權限,屬主,大小和修改時間被列出。當沒有參數(shù)被指定,則.(當前目錄)的內(nèi)容被列出。普通情況下選項-r和-l是互相不兼容的。

  l lls [ -r ] [ -l ] [ file ... ]:與ls一樣,但是是對于本地文件操作。

  l get [file ...]:從遠程端傳送指定的文件到本地端。目錄內(nèi)容被遞歸地復制。

  l put [ file ... ]:從本地端傳送指定的文件到遠地端。目錄內(nèi)容被遞歸地復制。

  l mkdir dir (rmdir dir):嘗試建立或刪除參數(shù)中指定的目錄。

  l 通配符對于ls,lls,get和put是支持的。格式在sshregex手冊中有描述。

  從sftp使用加密技術以來,一直有一個障礙:連接速度慢(有2-3倍),但是這一點對于非常好的安全性來講只能放在一邊了。在一個測試中,局域網(wǎng)上的sniffer可以在一個小時中捉住ftp連接上的4個password.。sftp的使用可以從網(wǎng)絡上傳送文件并且除去這些安全問題。

  linux傳輸文件命令8.lftp

  lftp 是一個功能強大的下載工具,它支持訪問文件的協(xié)議: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在編譯的時候包含openssl庫)。llftp非常像一個shell: 有命令補全,歷史記錄,允許多個后臺任務執(zhí)行等功能,使用起來非常方便。它還有書簽、排隊、鏡像、斷點續(xù)傳、多進程下載等功能。

  命令行語法

  (1) lftp [-d] [-e cmd] [-p port][-u user[,pass]] [site]

  -e在選擇后執(zhí)行命令

  -u [,] 使用指定的用戶名/口令進行驗證

  -p 連接指定的端口

  Site:主機名,URL 或書簽的名字

  (2) lftp -f script_file

  執(zhí)行文件中的命令后退出

  (3) lftp -c commands

  執(zhí)行命令后退出

  (4) lftp –version

  顯示 lftp 版本后退出

  (5) lftp --help

  顯示幫助信息后退出

  例子:

  (1) 如果在命令行中輸入的站點名稱,lftp將直接登錄站點,比如

  lftp ftp://.............

  (2) 如果在命令行不輸入站點名稱,則必須在進入到lftp界面后用open命令打開

  Lftp

  lftp :~> open ftp://...................

  常用命令

  l 下載單個文件和一組文件,斷點續(xù)傳用-c參數(shù)

  lftp ................:/> get -c ls-lR.txt

  lftp ...............:/> mget *.txt

  l 鏡像(反鏡像即上傳)一個目錄,可以用多個線程并行鏡像一個目錄(--parallel=N)

  lftp ................:/> mirror incoming local_name

  lftp ................:/> mirror -R local_name

  lftp ................:/> mirror --parallel=3 incominglocal_name

  l 多線程下載,類似網(wǎng)絡螞蟻的功能;缺省是5個線程

  lftp ................:/> pget -n 4 ls-lR.txt

  l 后臺任務管理

  缺省情況下,按 Ctrl+z,正在執(zhí)行的任務將轉為后臺執(zhí)行,也可以在命令行末尾加&符號使任務在后臺執(zhí)行。用jobs命令可以查看所有的后臺進程。用queue命令可以排隊新的任務。如果退出lftp是還有任務在后臺執(zhí)行,lftp將轉為后臺執(zhí)行。

  l 其它用法

  lftp支持類似bash的管道操作,例如用下面的命令可以將ftp服務器上的特定目錄下(也可以是整個站點)所有文件的大小存到本地的文件ls.txt中

  lftp ................:/> du incoming > ls.txt

  相關文件

  (1) /etc/lftp.conf

  全局配置文件,實際位置依賴系統(tǒng)配置文件目錄,可能在/etc,也可能在/usr/local/etc

  (2) ~/.lftp/rc, ~/.lftprc

  用戶配置文件,將在/etc/lftp.conf之后執(zhí)行,所以這里面的設置會覆蓋/etc/lftp.conf中的設置。

  (3) lftp 缺省不會顯示 ftp 服務器的歡迎信息和錯誤信息,這在很多時候不方便,因為你有可能想知道這個服務器到底是因為沒開機連不上,還是連接數(shù)已滿。如果是這樣,你可以在 ~/.lftprc 里寫入一行,debug 3,就可以看到出錯信息了。更多的配置選項請查man手冊或在lftp界面內(nèi)用命令 set -a 獲得。

  (4) ~/.lftp/log

  當lftp轉為后臺非掛起模式執(zhí)行時,輸出將重定向到這里

  (5) ~/.lftp/bookmarks

  這是lftp存儲書簽的地方,可以lftp查看bookmark命令

  (6) ~/.lftp/cwd_history

  這個文件用來存儲訪問過的站點的工作目錄

  (7) ~/.lftprc

  在用lftp訪問國內(nèi)一些ftp服務器時,往往看到的中文是亂碼。不用慌,這是由于服務器和本地編碼不一致造成的。我們只要在主目錄下新建一個文件~/.lftprc或者~/.lftp/rc。并在其中加入以下內(nèi)容:debug 3set ftp:charset GBKset file:charset UTF-8#setftp:passtive-mode no#alias utf8 " set ftp:charset UTF-8"#alias gbk" set ftp:charset GBK"

  登錄ftp服務器:

  lftpftp://user:password@site:port

  lftpuser:password@site:port

  lftpsite -p port -u user,password

  lftpsite:port -u user,password

  上面的幾種方式都能正常工作,不過密碼都是明文,這樣好像不太安全哦。沒關系,使用lftp user@site:port,系統(tǒng)會提示輸入password,密碼就回顯為******了,不過每次都輸入這么多,好麻煩哦。如果有類似leapftp的站點管理器就好了,其實lftp早就給我們想好了:這就是bookmark。后面我們將會看到。

  在終端運行如manlftp或登錄ftp后輸入help就可以看到命令列表,下面我們看一下lftp常用的命令:

  (1) ls:顯示遠端文件列表(!ls顯示本地文件列表)。

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

  (3) get:下載遠端文件。

  (4) mget:下載遠端文件(可以用通配符也就是 *)。

  (5) pget:使用多個線程來下載遠端文件, 預設為五個。

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

  (7) put:上傳文件。

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

  (9) mv:移動遠端文件(遠端文件改名)。

  (10) rm:刪除遠端文件。

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

  (12) mkdir:建立遠端目錄。

  (13) rmdir:刪除遠端目錄。

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

  (15) du:計算遠端目錄的大小

  (16) !:執(zhí)行本地 shell的命令(由于lftp 沒有 lls, 故可用 !ls 來替代)

  (17) Lcd:切換本地目錄

  (18) Lpwd:顯示本地目錄

  (19) Alias:定義別名

  (20) Bookmark:設定書簽。

  (21) Exit:退出ftp

  (22) 快捷書簽:ftp中的bookmark命令,是將配置寫到~/.lftp/bookmarks文件中;我們可以直接修改此文件,快速登陸ftp服務器。

  linux傳輸文件命令9.wget

  wget 是一個經(jīng)由 GPL 許可的可從網(wǎng)絡上自動獲取文件的自由軟件包。它是一個非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 協(xié)議,支持代理服務器以及斷點續(xù)傳功能。 wget 可實現(xiàn)遞歸下載,即可跟蹤 HTML 頁面上的鏈接依次下載來創(chuàng)建遠程服務器的本地版本,完全重建原始站點的目錄結構,實現(xiàn)遠程網(wǎng)站的鏡像。在遞歸下載時,wget 將頁面中的超級鏈接轉換成指向本地文件,方便離線瀏覽。由于非交互特性,wget 支持后臺運行,用戶在退出系統(tǒng)后,仍可繼續(xù)運行。功能強大,設置方便簡單。

  基本語法: wget [options][URL-list]

  Options:

  -r 遞歸下載服務器上所有的目錄和文件。由 -l選項來指定遞歸深度。

  -b 后臺下載

  -m 制作站點鏡像

  -c 指定斷點續(xù)傳功能。該功能要求服務器支持斷點續(xù)傳。

  -I 指定下載目錄列表,可實現(xiàn)批量下載

  -A/-R 指定接受/拒絕下載列表,實現(xiàn)選擇性地下載

  --proxy=on/off 指定是否利用代理服務器進行下載

  -t,--tries=NUMBER 最大嘗試鏈接次數(shù) (0 表示無限制,默認為 20 次 )

  -nc,--no-clobber 不覆蓋已存在的文件

  -N,--timestamping 只下載比本地新的文件

  -nd--no-directories 不進行目錄結構創(chuàng)建

  -x,--force-directories 強制創(chuàng)建目錄結構

  -nH,--no-host-directories 不繼承主機目錄結構

  -P,--directory-prefix=PREFIX 設置目錄前綴

  例子:遞歸下載 http://www.ibm.com.cn 站點的信息。下載所有顯示完整網(wǎng)頁所以需要的文件,如圖片等。在下載不進行上層目錄搜索并將絕對鏈接轉換為相對鏈接。

  wget -r -p -np -k http://www.ibm.com.cn

  將在本地硬盤建立http://www.ibm.com.cn 的鏡像,鏡像文件存入當前目錄下一個名為 www.ibm.com.cn 的子目錄中(也可以使用 -nH 參數(shù)指定不建立該子目錄,而直接在當前目錄下建立鏡像的目錄結構),遞歸深度為 4,重試次數(shù)為無窮(若連接出現(xiàn)問題,wget 將永遠重試下去,直至任務完成)

  wget -m -l4 -t0 http://www.ibm.com.c

  使用代理進行下載,并實現(xiàn)斷點續(xù)傳。代理可以在環(huán)境變量 PROXY 或 wgetrc 文件中設定。 -c 選項要求服務支持斷點續(xù)傳。

  wget -Y on -c http://www.ibm.com.cn

  linux傳輸文件命令10.curl

  curl是對 libcurl 庫的一個命令行工具包裝。libcurl 庫中提供了相應功能的 API,可以在程序中調(diào)用。 curl 使用 URL 的語法來傳輸文件,它支持 FTP, FTPS, HTTP, HTTPS, TFTP, SFTP, TELNET 等多種協(xié)議。 curl 功能強大,它提供了包括代理支持,用戶認證,F(xiàn)TP 上載,HTTP post,SSL 連接,文件續(xù)傳等許多特性。

  基本語法:curl [options …]

  其中下載參數(shù)大約有 80 多個,curl 的各個功能完全依靠這些參數(shù)來完成。下面舉例說明 curl 的一些基本用法。

  使用實例:

  (1) 獲取 GNU 的主頁curl http://www.gnu.org

  (2) 獲取 GNU 的 FTP 服務器上根目錄下的 README 文件curl ftp://ftp.gnu.org/README

  (3) 從一個字典中獲取 curl 的定義curl dict://dict.org/m:curl

  (4) 如果需要指定用戶名和密碼的話,可以在 url 中指定,或者使用 -u 參數(shù)curl ftp://name:passwd@machine.domain:port/full/path/to/file或者curl -uname:passwd ftp://machine.domain:port/full/path/to/file

  (5) curl 會將從指定 url 處獲取的內(nèi)容打印到標準輸出上。如果需要保存在本地文件中,可以使用 -o,或使用 -O 參數(shù)指定使用遠程主機上的文件名(如果 url 中沒有給出文件名的部分,則此操作將會失敗)curl -o gnu.html http://www.gnu.org 或者curl -O http:///www.gnu.org/index.htm

  (6) 使用 -x 選項來使用代理進行連接curl -x my-proxy:port ftp://ftp.somesite.com/READMEN

  (7) 通過使用 curl 的 -T 選項來進行上載curl -T - ftp://ftp.upload.com/upfile,此命令從標準輸入讀取數(shù)據(jù),并上載至遠程 FTP 服務器上的 upfile 文件中。也可以指定上載一個本地文件curl -T localfile -a ftp://ftp.upload.com/upfile其中 -a 參數(shù)表示以添加方式將localfile 中的內(nèi)容附加到 upfile 的末尾。

  總的來說,curl 適合用來進行自動的文件傳輸或操作序列,它是一個很好的模擬用戶在網(wǎng)頁瀏覽器上的行為的工具。尤其當需要在程序中調(diào)用時,libcurl 是個很好的選擇。

  傳輸速度

  因為經(jīng)常在服務器見進行文件傳輸,就對傳輸速度和帶寬有要求,這里總結一下可以影響以上rcp,scp,rsync,ftp,sftp,lftp,wget,curl這6個命令的傳輸速度和帶寬的參數(shù):

  (1) rcp:沒有參數(shù)可以調(diào)整帶寬和傳輸速度

  (2) scp:如果傳輸?shù)奈募]有壓縮,可以使用-C參數(shù)(-C 使能壓縮選項)。-c 選擇使用那個加密算法,具體對應到ssh的-c cipher-spec,這個參數(shù)值會被傳給ssh,可選擇值3des,blowfish,des),使用blowfish會快很多,可以參看man ssh 中的-c cipher-spec。可以使用-l 限制使用帶寬,Kbit/s。避免因為傳輸文件而影響其他程序使用帶寬。-o ssh_option使用ssh選項

  (3) rsync:-B, --block-size=SIZE 檢驗算法使用的塊尺寸,默認是700字節(jié);-z, --compress 對備份的文件在傳輸時進行壓縮處理;--bwlimit=KBPS 限制I/O帶寬,KBytes per second ;-e, --rsh=COMMAND 指定使用rsh、ssh方式進行數(shù)據(jù)同步

  (4) ftp:FTP>ascii 將文檔傳送類型配置為默認的 ASCII。說明:linux ftp命令參數(shù)支持兩種文檔傳送類型,ASCII 碼和二進制圖像,在傳送文本文檔時應該使用ASCII。Binary二進制傳輸。

  (5) sftp: -B buffer_size, -C使用壓縮,-ossh_option使用ssh選項

  (6) lftp:可以調(diào)整進程數(shù)等

  (7) wget: --limit-rate=amount限制帶寬。

  (8) curl:-B/--use-ascii和--ciphers,--compressed等。

  總結

  (1) 傳輸性能:wget 通過支持后臺執(zhí)行及斷點續(xù)傳提高文件傳輸效率; rsync 則以其高效的傳輸及壓縮算法達到快傳輸?shù)哪康摹?/p>

  (2) 配置難度:rcp 只需進行簡單的配置,創(chuàng)建.rhost文件以及設置/etc/hosts文件中主機名與IP地址列表; wget設置方便簡單,只需在客戶端指定參數(shù)執(zhí)行命令即可; rsync 在使用前需要對服務端/etc/rsyncd.conf 進行參數(shù)設定,配置內(nèi)容相對復雜。

  (3) 安全性能:ftp、rcp不保證傳輸?shù)陌踩?,scp、rsync則均可基于ssh 認證進行傳輸,提供了較強的安全保障。wget 也可通過指定安全協(xié)議做到安全傳輸。

  通過上述的對比不難發(fā)現(xiàn),每種文件傳輸方法基于其自身的特點與優(yōu)勢均有其典型的適用場景:

  (1) ftp 作為最常用的入門式的文件傳輸方法,使用簡單,易于理解,并且可以實現(xiàn)腳本自動化;但是需要安裝ftp server才可以訪問遠程ftp server

  (2) rcp 相對于ftp可以保留文件屬性并可遞歸的拷貝子目錄;

  (3) scp 利用ssh傳輸數(shù)據(jù),并使用與ssh相同的認證模式,相對于rcp提供更強的安全保障;

  (4) wget實現(xiàn)遞歸下載,可跟蹤HTML頁面上的鏈接依次下載來創(chuàng)建遠程服務器的本地版本,完全重建原始站點的目錄結構,適合實現(xiàn)遠程網(wǎng)站的鏡像;

  (5) curl 則適合用來進行自動的文件傳輸或操作序列,是一個很好的模擬用戶在網(wǎng)頁瀏覽器上的行為的工具;

  (6) rsync 更適用于大數(shù)據(jù)量的每日同步,拷貝的速度很快,相對wget來說速度快且安全高效。

  (7) sftp使用在數(shù)據(jù)連接上使用ssh2,所以文件的傳輸是盡可能地安全。但傳輸速度慢。是ftp的替代品,比ftp安全,不能訪問http資源。

  (8) lftp可以訪問ftp資源,也可以訪問http資源。支持斷點續(xù)傳,多進程下載。

3622375