linux傳輸文件命令
linux傳輸文件命令
linux系統(tǒng)下我們經(jīng)常要互相傳送文件,以下幾個(gè)命令就可以做到。下面由學(xué)習(xí)啦小編為大家整理了linux傳輸文件命令的相關(guān)知識(shí),希望大家喜歡!
linux傳輸文件命令詳解
linux傳輸文件命令1.sftp
Secure Ftp 是一個(gè)基于SSH安全協(xié)議的文件傳輸管理工具。由于它是基于SSH的,會(huì)在傳輸過(guò)程中對(duì)用戶的密碼、數(shù)據(jù)等敏感信息進(jìn)行加密,因此可以有效的防止用戶信息在傳輸?shù)倪^(guò)程中被竊取,比FTP有更高的安全性。在功能方面與FTP很類(lèi)似,不僅可以傳輸文件數(shù)據(jù),而且可以進(jìn)行遠(yuǎn)程的文件管理(如建立,刪除,查看文件列表等操作)。Sftp與ftp雖然只有一字之差,但基于的傳輸協(xié)議卻是不同的。因此不能用sftp client去連接ftp server 也不能用 ftp client 去連接 sftp server。
建立連接:sftp user@host
從本地上傳文件:put localpath
下載文件:get remotepath
與遠(yuǎn)程相對(duì)應(yīng)的本地操作,只需要在命令前加上”l” 即可,方便好記。
例如:lcd lpwd lmkdir
linux傳輸文件命令2.scp
SCP :secure copy (remote file copy program) 也是一個(gè)基于SSH安全協(xié)議的文件傳輸命令。與sftp不同的是,它只提供主機(jī)間的文件傳輸功能,沒(méi)有文件管理的功能。
復(fù)制local_file 到遠(yuǎn)程目錄remote_folder下
scp local_file remote_user@host:remote_folder
復(fù)制local_folder 到遠(yuǎn)程remote_folder(需要加參數(shù) -r 遞歸)
scp –r local_folder remote_user@host:remote_folder
以上命令反過(guò)來(lái)寫(xiě)就是遠(yuǎn)程復(fù)制到本地
linux傳輸文件命令3.sz/rz
sz/rz 是基于ZModem傳輸協(xié)議的命令。對(duì)傳輸?shù)臄?shù)據(jù)會(huì)進(jìn)行核查,并且有很好的傳輸性能。使用起來(lái)更是非常方便,但前提是window端需要有能夠支持ZModem的telnet或者SSH客戶端,例如secureCRT。
首先需要在secureCRT中可以配置相關(guān)的本地下載和上傳目錄,然后用rz、sz命令即可方便的傳輸文件數(shù)據(jù)。
下載數(shù)據(jù)到本地下載目錄:sz filename1 filename2 …
上傳數(shù)據(jù)到遠(yuǎn)程:執(zhí)行rz –be 命令,客戶端會(huì)彈出上傳窗口,用戶自行選擇(可多選)要上傳的文件即可。
相關(guān)資料:
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
因?yàn)楣ぷ髟颍枰?jīng)常在不同的服務(wù)器見(jiàn)進(jìn)行文件傳輸,特別是大文件的傳輸,因此對(duì)linux下不同服務(wù)器間數(shù)據(jù)傳輸命令和工具進(jìn)行了研究和總結(jié)。主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。
rcp
rcp不是一種安全的的傳輸文件的方式,rcp通過(guò)rsh(rsh見(jiàn)下面)來(lái)執(zhí)行遠(yuǎn)程命令,要使用rcp必須經(jīng)過(guò)一些配置,現(xiàn)在rcp已經(jīng)被scp取代了,常用scp來(lái)進(jìn)行文件傳輸。要使用rcp,需要具備以下條件:
(1)如果系統(tǒng)中有/etc/hosts 文件,應(yīng)確保該文件包含要與之進(jìn)行通信的遠(yuǎn)程主機(jī)信息:internet_address official_name alias。例如:1.186.10.*** blade1.ibm.com.cnblade
(2).rhosts 文件:.rhosts 文件位于遠(yuǎn)程系統(tǒng)的根目錄下,其中包含本地系統(tǒng)的名稱(chēng)和本地登錄名。例如,遠(yuǎn)程系統(tǒng)的 .rhosts 文件中的項(xiàng)可能是:blade1 root;其中,blade1 是本地系統(tǒng)的名稱(chēng),root 是本地登錄名。這樣,blade1 上的 root 即可在包含 .rhosts 文件的遠(yuǎn)程系統(tǒng)中來(lái)回復(fù)制文件。
配置過(guò)程:
(1) 在雙方root用戶根目錄下建立.rhosts文件,并將雙方的hostname加進(jìn)去.在此之前應(yīng)在雙方的 /etc/hosts文件中加入對(duì)方的IP和hostname
(2) 把rsh服務(wù)啟動(dòng)起來(lái),redhat默認(rèn)是不啟動(dòng)的。方法:用執(zhí)行ntsysv命令,在rsh選項(xiàng)前用空格鍵選中,確定退出。然后執(zhí)行:service xinetd restart即可。如果沒(méi)有rsh,請(qǐng)見(jiàn)下面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 試圖保留源文件的修改時(shí)間和模式,忽略u(píng)mask。
rsh(remote shell,它不夠安全):rsh使用條件同rcp,rsh配置過(guò)程(以root為例)
(1) 在服務(wù)器上運(yùn)行/urs/bin/ntsysv選中rexec,rlogin,rsh三項(xiàng)服務(wù)。
(2) 運(yùn)行#/sbin/service xinetd restart啟動(dòng)該三項(xiàng)服務(wù)。
(3) 運(yùn)行echo"rexec">>/etc/securetty; echo"rlogin">>/etc/securetty; echo"rsh">>/etc/securetty
(4) 在服務(wù)器上運(yùn)行echo"你的ip地址root">>/root/.rhosts或者echo"你的主機(jī)名root">>/root/.rhosts且確保在服務(wù)器上的/etc/hosts中有主機(jī)名和ip地址的映射關(guān)系
(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,是用來(lái)進(jìn)行遠(yuǎn)程文件拷貝的。數(shù)據(jù)傳輸使用 ssh,并且和ssh 使用相同的認(rèn)證方式,提供相同的安全保證。 與rcp 不同的是,scp 在需要進(jìn)行驗(yàn)證時(shí)會(huì)要求你輸入密碼或口令。
scp [options] [本地用戶名@IP地址:]file1 [遠(yuǎn)程用戶名 @IP 地址 :] file2
options:
-v 用來(lái)顯示進(jìn)度,可以用來(lái)查看連接,認(rèn)證,或是配置錯(cuò)誤。
-C 使能壓縮選項(xiàng)。
-c 選擇使用那個(gè)加密算法(具體對(duì)應(yīng)到ssh的-c cipher-spec,這個(gè)參數(shù)值會(huì)被傳給ssh,可選擇值3des,blowfish,des),使用blowfish會(huì)快很多,可以參看man ssh 中的-c cipher-spec
-P 選擇端口
-r 遞歸拷貝整個(gè)目錄
-l 限制使用帶寬,Kbit/s
-o 指定傳給ssh的一些參數(shù)值,比如Compression=yes
-p 保留文件的修改時(shí)間等信息。
linux傳輸文件命令5.rsync
rsync是rcp的替代品之一,rsync 是一款高效的遠(yuǎn)程數(shù)據(jù)備份和鏡象工具,可快速地同步多臺(tái)主機(jī)間的文件,其具有如下特性:
l 支持鏈接、所有者、組信息以及權(quán)限信息的拷貝;
l 通過(guò)遠(yuǎn)程 shell(ssh, rsh)進(jìn)行傳輸;
l 無(wú)須特殊權(quán)限即可安裝使用;
l 流水線式文件傳輸模式,文件傳輸效率高;
l 支持匿名操作;
需要提及的是 rsync 以其優(yōu)越的性能優(yōu)勢(shì)區(qū)別于其它幾種 Linux 文件傳輸方法,其同步文件的速度相當(dāng)快,這主要?dú)w功于 rsync 所使用的傳輸算法。簡(jiǎn)而言之 rsync 算法能在相當(dāng)短的時(shí)間內(nèi)計(jì)算出需要備份的數(shù)據(jù),只對(duì)源文件與目標(biāo)文件的不同之處進(jìn)行傳輸,從而降低網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)量,以此達(dá)到快速備份鏡像的目的。下面通過(guò)一典型應(yīng)用場(chǎng)景來(lái)描述 rsync 算法的基本原理:主機(jī) A 與主機(jī) B 均有對(duì)同一文件的拷貝,用戶對(duì)主機(jī) A 上的拷貝進(jìn)行更新,主機(jī) B 通過(guò) rsync 算法對(duì)更新后的文件進(jìn)行同步。以下是該算法的實(shí)現(xiàn)步驟:
(1) 主機(jī) B 將原始拷貝劃分成大小為 N 的不重合的若干塊(文件末尾部分分塊大小可能不足 N),并對(duì)這些數(shù)據(jù)塊進(jìn)行兩種不同方式的校驗(yàn):32 位的滾動(dòng)弱校驗(yàn)、128 位的 MD4 強(qiáng)校驗(yàn)。弱校驗(yàn)較之強(qiáng)校驗(yàn)計(jì)算速度快。
(2) 主機(jī) B 將每個(gè)數(shù)據(jù)塊的弱校驗(yàn)、強(qiáng)校驗(yàn)結(jié)果發(fā)送給主機(jī) A 。
(3) 主機(jī) A 對(duì)更新后的文件拷貝中的每個(gè)長(zhǎng)度為 N 的數(shù)據(jù)塊進(jìn)行弱校驗(yàn)并與從 B 接收到的弱校驗(yàn)值進(jìn)行匹配,若相同再進(jìn)行強(qiáng)校驗(yàn)匹配。由于弱校驗(yàn)的滾動(dòng)特性可以快速地篩選出需要進(jìn)行同步的數(shù)據(jù)塊。該算法的運(yùn)算量主要集中在主機(jī) A 上。
通過(guò)上述計(jì)算,主機(jī) A 將文件的不同部分發(fā)送給 B,B 接收到兩個(gè)拷貝之間的不同之處,從而同步得到更新后的文件。通過(guò)如上方式,rsync 避免了對(duì)相同數(shù)據(jù)的傳輸,減少了網(wǎng)絡(luò)帶寬的浪費(fèi)。在時(shí)間上整個(gè)過(guò)程中需一個(gè)往返,從某種程度上也保證了 rsync 的優(yōu)越性能。
Rsync可以通過(guò)兩種方式來(lái)連接遠(yuǎn)程服務(wù)器,一種是通過(guò)類(lèi)shell命令的方式,一種是通過(guò)rsync daemon的方式,rsync daemon需要進(jìn)行安裝和配置,具體如下:
可從官方網(wǎng)站http://rsync.samba.org/ 上下載安裝 rsync 的最新版本。使用時(shí)需將 rsync 分別安裝于服務(wù)端和客戶端,服務(wù)端和客戶端使用同一個(gè) rsync 軟件包來(lái)實(shí)現(xiàn)遠(yuǎn)程鏡像和定期同步更新。需要說(shuō)明的是一個(gè) rsync 服務(wù)端可同時(shí)備份多個(gè)客戶端的數(shù)據(jù);多個(gè)服務(wù)端備份一個(gè)客戶端的數(shù)據(jù)。 rsync 默認(rèn)端口為 873,服務(wù)器在該端口接收客戶的匿名或者認(rèn)證方式的備份請(qǐng)求。
rsync 服務(wù)端在使用之前需要進(jìn)行必要的配置,其配置文件為 /etc/rsyncd.conf,進(jìn)行認(rèn)證、訪問(wèn)、日志記錄等控制。配置文件包括全局參數(shù)、模塊參數(shù)的設(shè)置。 rsyncd.conf 文件中 [module] 之前的所有參數(shù)為全局參數(shù),也可以在全局參數(shù)部分定義模塊參數(shù),在這種情況下該參數(shù)的值就是所有模塊的默認(rèn)值。全局參數(shù)設(shè)置程序使用的端口號(hào),指定消息文件、日志文件 pid 文件以及發(fā)送日志消息的級(jí)別。模塊參數(shù)主要定義服務(wù)端哪個(gè)目錄需要被同步。用戶可根據(jù)不同的需要指定多個(gè)模塊,每個(gè)模塊對(duì)應(yīng)需要備份的一個(gè)目錄樹(shù),即若有 N 個(gè)需要備份的目錄樹(shù),則需要 N 個(gè)模塊與之對(duì)應(yīng)。模塊中可以定義許多參數(shù),常見(jiàn)參數(shù)如下。
l Comment 模塊信息描述,該描述連同模塊名在客戶連接得到模塊列表時(shí)顯示給客戶。默認(rèn)沒(méi)有描述定義。
l Path 指定供備份的目錄路徑,必須指定該參數(shù)。
l max connections 指定最大并發(fā)連接數(shù)以保護(hù)服務(wù)器,超過(guò)限制的連接請(qǐng)求將被告知隨后再試。默認(rèn)值為 0,即沒(méi)有限制。
l log file 指定日志文件
l read only 設(shè)定是否允許客戶上載文件。若為 true 任何上載請(qǐng)求均會(huì)失敗,若為 false 且客戶端擁有服務(wù)器目錄讀寫(xiě)權(quán)限則可以上載。默認(rèn)值為 true 。
l write only 設(shè)定是否允許客戶下載文件。若為 true 任何下載請(qǐng)求均會(huì)失敗,默認(rèn)值為 false 。
l List 設(shè)定當(dāng)客戶請(qǐng)求可以使用的模塊列表時(shí),是否列出該模塊。若為 false,則創(chuàng)建隱藏的模塊。默認(rèn)值為 true 。
l fake super 允許文件享有所有權(quán)限,而無(wú)需后臺(tái)服務(wù)以 root 權(quán)限進(jìn)行操作。
l Filter 設(shè)置過(guò)濾列表以決定哪些文件可由客戶端訪問(wèn)。
l hosts allow 指定允許客戶連接的 IP 地址。可以為單個(gè) IP 地址或整個(gè)網(wǎng)段。多個(gè) IP或網(wǎng)段需要以空格隔開(kāi)。默認(rèn)是允許所有主機(jī)連接。
l dont compress 指定不進(jìn)行壓縮處理即可傳輸?shù)奈募J(rèn)值是 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
l pre-xfer exec, post-xfer exec 設(shè)置可在文件傳輸前/后執(zhí)行的命令。若在文件傳輸前執(zhí)行的命令失敗,則取消本次傳輸操作。
需要注意的是服務(wù)器端啟動(dòng):/usr/bin/rsync--daemon --config=/etc/rsyncd/rsyncd.conf
連接遠(yuǎn)程服務(wù)器的兩種方式的基本語(yǔ)法
(1) 通過(guò)遠(yuǎn)程 shell 方式:
l rsync [OPTION] [USER@]HOST:SRC DEST:用遠(yuǎn)程 shell(如 ssh, rsh)實(shí)現(xiàn)將遠(yuǎn)程機(jī)器的內(nèi)容拷貝到本地機(jī)器。 SRC 地址路徑中以單個(gè)冒號(hào) ":" 進(jìn)行分隔。
l rsync [OPTION] SRC [USER@]HOST:DEST:使用遠(yuǎn)程 shell(如 rsh、ssh)實(shí)現(xiàn)本地機(jī)器的內(nèi)容拷貝到遠(yuǎn)程機(jī)器。 DEST 地址路徑中以單個(gè)冒號(hào) ":" 進(jìn)行分隔。
(2) 通過(guò) rsync daemon 方式:
l rsync [OPTION] [USER@]HOST::SRC DEST 或rsync [OPTION]rsync://[USER@]HOST[:PORT]/SRC [DEST]:從遠(yuǎn)程 rsync 服務(wù)器中拷貝文件到本地機(jī)。SRC 地址路徑中以雙冒號(hào) "::" 進(jìn)行分隔。
l rsync [OPTION] SRC [USER@]HOST::DEST 或rsync [OPTION] SRCrsync://[USER@]HOST[:PORT]/DEST:從本地機(jī)器拷貝文件到遠(yuǎn)程 rsync 服務(wù)器中。 DEST 地址路徑中以雙冒號(hào) "::" 進(jìn)行分隔。
如果 rsync 命令中只指定 SRC 參數(shù)而不指定 DEST 參數(shù),則意為顯示源文件列表而非進(jìn)行同步拷貝。
Options:
options:
-v,--verbose 詳細(xì)模式輸出
-q,--quiet 精簡(jiǎn)輸出模式
-c,--checksum 打開(kāi)校驗(yàn)開(kāi)關(guān),強(qiáng)制對(duì)文件傳輸進(jìn)行校驗(yàn)
-a,--archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD
-r,--recursive 對(duì)子目錄以遞歸模式處理
-R,--relative 使用相對(duì)路徑信息
-b,--backup 創(chuàng)建備份,也就是對(duì)于目的已經(jīng)存在有同樣的文件名時(shí),將老的文件重新命名為~filename??梢允褂?-suffix選項(xiàng)來(lái)指定不同的備份文件前綴。
--backup-dir將備份文件(如~filename)存放在在目錄下。
-suffix=SUFFIX定義備份文件前綴
-u,--update 僅僅進(jìn)行更新,也就是跳過(guò)所有已經(jīng)存在于DST,并且文件時(shí)間晚于要備份的文件。(不覆蓋更新的文件)
-l,--links 保留軟鏈結(jié)
-L,--copy-links 想對(duì)待常規(guī)文件一樣處理軟鏈結(jié)
--copy-unsafe-links僅僅拷貝指向SRC路徑目錄樹(shù)以外的鏈結(jié)
--safe-links忽略指向SRC路徑目錄樹(shù)以外的鏈結(jié)
-H,--hard-links 保留硬鏈結(jié)
-p,--perms 保持文件權(quán)限
-o,--owner 保持文件屬主信息
-g, --group 保持文件屬組信息
-D,--devices 保持設(shè)備文件信息
-t,--times 保持文件時(shí)間信息
-S,--sparse 對(duì)稀疏文件進(jìn)行特殊處理以節(jié)省DST的空間
-n,--dry-run現(xiàn)實(shí)哪些文件將被傳輸
-W,--whole-file 拷貝文件,不進(jìn)行增量檢測(cè)
-x,--one-file-system 不要跨越文件系統(tǒng)邊界
-B,--block-size=SIZE 檢驗(yàn)算法使用的塊尺寸,默認(rèn)是700字節(jié)
-e,--rsh=COMMAND 指定使用rsh、ssh方式進(jìn)行數(shù)據(jù)同步
--rsync-path=PATH指定遠(yuǎn)程服務(wù)器上的rsync命令所在路徑信息
-C,--cvs-exclude 使用和CVS一樣的方法自動(dòng)忽略文件,用來(lái)排除那些不希望傳輸?shù)奈募?/p>
--existing僅僅更新那些已經(jīng)存在于DST的文件,而不備份那些新創(chuàng)建的文件
--delete刪除那些DST中SRC沒(méi)有的文件
--delete-excluded同樣刪除接收端那些被該選項(xiàng)指定排除的文件
--delete-after傳輸結(jié)束以后再刪除
--ignore-errors及時(shí)出現(xiàn)IO錯(cuò)誤也進(jìn)行刪除
--max-delete=NUM最多刪除NUM個(gè)文件
--partial保留那些因故沒(méi)有完全傳輸?shù)奈募?,以是加快隨后的再次傳輸
--force強(qiáng)制刪除目錄,即使不為空
--numeric-ids不將數(shù)字的用戶和組ID匹配為用戶名和組名
--timeout=TIMEIP超時(shí)時(shí)間,單位為秒
-I,--ignore-times 不跳過(guò)那些有同樣的時(shí)間和長(zhǎng)度的文件
--size-only當(dāng)決定是否要備份文件時(shí),僅僅察看文件大小而不考慮文件時(shí)間
--modify-window=NUM決定文件是否時(shí)間相同時(shí)使用的時(shí)間戳窗口,默認(rèn)為0
-T--temp-dir=DIR 在DIR中創(chuàng)建臨時(shí)文件
--compare-dest=DIR同樣比較DIR中的文件來(lái)決定是否需要備份
-P等同于 --partial
--progress顯示備份過(guò)程
-z,--compress 對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理
--exclude=PATTERN指定排除不需要傳輸?shù)奈募J?/p>
--include=PATTERN指定不排除而需要傳輸?shù)奈募J?/p>
--exclude-from=FILE排除FILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version打印版本信息
--address綁定到特定的地址
--config=FILE指定其他的配置文件,不使用默認(rèn)的rsyncd.conf文件
--port=PORT指定其他的rsync服務(wù)端口
--blocking-io對(duì)遠(yuǎn)程shell使用阻塞IO
-stats給出某些文件的傳輸狀態(tài)
--progress在傳輸時(shí)現(xiàn)實(shí)傳輸過(guò)程
--log-format=formAT指定日志文件格式
--password-file=FILE從FILE中得到密碼
--bwlimit=KBPS限制I/O帶寬,KBytes per second
-h,--help 顯示幫助信息
實(shí)例:
(1) 查看服務(wù)端文件及列表:
l rsync 9.186.110.53::查看服務(wù)端可用的模塊列表以及注釋信息;rsync ibmuser@9.186.110.53::www/查看服務(wù)端 www 模塊中的目錄及文件列表(使用 rsyncd 用戶認(rèn)證方式)
l rsync ibmuser@9.186.110.53:/var/www/html/查看服務(wù)端/var/www/html 目錄中的內(nèi)容(使用服務(wù)端的系統(tǒng)用戶進(jìn)行驗(yàn)證,如 ibmuser)
(2) 保持客戶端與服務(wù)端的數(shù)據(jù)同步:
l rsync -avz ibmuser@9.186.110.53::www/ /backup1/使用后臺(tái)服務(wù)方式將服務(wù)端www 模塊下的內(nèi)容備份到本地 /backup1 目錄中,備份時(shí)保留原有權(quán)限、屬性、屬主及符號(hào)連接等,并使用壓縮方式加快數(shù)據(jù)傳輸。
l rsync – avzibmuser@9.186.110.53:/var/www/html /backup2/使用 ssh 方式將遠(yuǎn)程的/var/www/html 目錄備份到本地 /backup2/ 目錄下
l rsync -avz --deleteibmuser@9.186.110.53::www/ /backup3/將遠(yuǎn)程 www 模塊備份到本地/backup3/ 目錄中,同時(shí)進(jìn)行同步目錄,刪除本地目錄中多余的文件。
(3) 當(dāng)服務(wù)端的數(shù)據(jù)出現(xiàn)問(wèn)題時(shí),需要通過(guò)客戶端的數(shù)據(jù)對(duì)服務(wù)端進(jìn)行恢復(fù),只要客戶端有服務(wù)端的寫(xiě)入權(quán)限,即可通過(guò)調(diào)換 rsync 命令的 SRC、DEST 參數(shù)進(jìn)行恢復(fù)。
linux傳輸文件命令6.ftp
ftp命令使用文件傳輸協(xié)議(FileTransfer Protocol ,FTP)在本地主機(jī)和遠(yuǎn)程主機(jī)之間或者兩個(gè)遠(yuǎn)程主機(jī)之間進(jìn)行文件傳輸。FTP 協(xié)議允許數(shù)據(jù)在不同文件系統(tǒng)的主機(jī)之間傳輸。盡管這個(gè)協(xié)議在傳輸數(shù)據(jù)上提供了高適應(yīng)性,但是它并沒(méi)有嘗試去保留一個(gè)特定文件系統(tǒng)上的文件屬性(例如一個(gè)文件的保護(hù)模式或者修改次數(shù))。而且 FTP 協(xié)議很少對(duì)一個(gè)文件系統(tǒng)的整體結(jié)構(gòu)作假定,也不提供這樣的功能,比如遞歸的拷貝子目錄。在使用 ftp 命令時(shí),需要注意 FTP 協(xié)議的這些特性。當(dāng)需要保留文件屬性或者需要遞歸的拷貝子目錄時(shí),可以使用 rcp/scp 等命令。
如果需要將文件以ftp傳輸?shù)侥康姆?wù)器上,必須在目的服務(wù)器上安裝ftp server,基本的安裝和啟動(dòng)過(guò)程如下:
根據(jù)服務(wù)對(duì)象的不同,F(xiàn)TP服務(wù)可以分為兩類(lèi):一類(lèi)是系統(tǒng)FTP服務(wù)器,它只允許系統(tǒng)上的合法用戶使用;另一類(lèi)是匿名FTP服務(wù)器,它允許任何人登錄到FTP服務(wù)器,和服務(wù)器連接后,在登錄提示中輸入Anonymous,即可訪問(wèn)服務(wù)器。
Yum list *ftp* (找到可用的Ftp包)
sudo yum install ftp包
手工啟動(dòng)和關(guān)閉:?jiǎn)?dòng):/usr/sbin/ftprestart 關(guān)閉:/usr/sbin/ftpshut
FTP服務(wù)器的配置:為了確保FTP服務(wù)器安全,必須設(shè)置一些重要的配置文件,以更好地控制用戶的訪問(wèn)權(quán)限。這些配置文件是:/etc/ftpusers;/etc/ftpconversions;/etc/ftp-groups;/etc/ftpphosts;/etc/ftpaccess。利用這些文件,能夠非常精確地控制哪些人、在什么時(shí)間、從什么地點(diǎn)可以連接服務(wù)器,并且可以對(duì)他們連接后所做的工作進(jìn)行檢查跟蹤。
(1) /etc/ftpusers:該文件夾中包含的用戶不能通過(guò)FTP登錄服務(wù)器,有時(shí)將需要禁止的用戶賬號(hào)寫(xiě)入文件/etc/ftpuser中,這樣就可以禁止一些用戶使用FTP服務(wù)。
(2) /etc/ftpconversions:用來(lái)配置壓縮/解壓縮程序。
(3) /etc/ftpgroups:創(chuàng)建用戶組,這個(gè)組中的成員預(yù)先定義可以訪問(wèn)FTP服務(wù)器。
(4) /etc/ftpphosts:用來(lái)根據(jù)禁止或允許遠(yuǎn)程主機(jī)對(duì)特定賬戶的訪問(wèn),例如:allow czc 192.168.0.0/24 deny cdd 10.0.0.0/8(表示允許czc用戶從192.168.0這個(gè)網(wǎng)段連線訪問(wèn),拒絕cdd從10.這個(gè)網(wǎng)段連線訪問(wèn))。
(5) /etc/ftpaccess:是非常重要的一個(gè)配置文件,用來(lái)控制存取權(quán)限,文件中的每一行定義一個(gè)屬性,并對(duì)屬性的值進(jìn)行設(shè)置。下面對(duì)它的一些常用配置做一點(diǎn)介紹:
l 定義用戶類(lèi)別:格式:class[類(lèi)名] [real/guest/anonymous][IP地址] 功能:這個(gè)指令的功能設(shè)定FTP服務(wù)器上用戶的類(lèi)別。并可對(duì)客戶端的IP地址進(jìn)行限制,允許特定或者全部的IP地址訪問(wèn)FTP服務(wù)器。
l 登錄重試次數(shù):在命令行中輸入:loginfails 10,這表明如果10次還沒(méi)有登錄成功就切斷連線。
l 密碼檢查:格式:passwd-check〈strictness〉 warn。是對(duì)匿名用戶的密碼使用方式的檢查,其中〈strictness〉是三個(gè)可能的字符串之一:None、Trivial、RFC822。若選None,表示將不對(duì)口令做任何檢查;若選Trivial,表示對(duì)口令有一定的要求,它需要在口令中至少要有一個(gè)@符號(hào);若選RFC822,則表示最嚴(yán)格,要求E-mail地址必須遵守RFC822報(bào)文標(biāo)題標(biāo)準(zhǔn)(如:czc@domain.com )。例如:passwd-check rfc822 warn,表明密碼的要求很?chē)?yán)格,當(dāng)密碼不符合規(guī)定時(shí)出現(xiàn)警告信息。
l 登錄人數(shù)的限制:格式:limit[類(lèi)別] [人數(shù)] [時(shí)間] [文件名]。設(shè)置指定類(lèi)別在約定時(shí)間內(nèi)可以登錄FTP的人數(shù)。例如:limit remote Any/etc/many.msg,說(shuō)明類(lèi)別Remote類(lèi)別在任何時(shí)間內(nèi)登錄人數(shù)不超過(guò)20個(gè)人,否則會(huì)顯示Many.msg警告信息。
安裝、配置好FTP服務(wù)器后,只需要在命令提示符后輸入:FTP Servername,用主機(jī)名或希望連接的FTP服務(wù)器的IP地址代替Servername,按照提示輸入用戶名和口令,然后用標(biāo)準(zhǔn)的Linux上移或下移FTP服務(wù)器目錄結(jié)構(gòu)。另外,也可以采用圖形化FTP程序,包括窗口式gFTP,可以借助Web瀏覽器去訪問(wèn)FTP服務(wù)器。
在登錄上ftp后,可以使用如下ftp命令進(jìn)行操作:
l FTP> ! 從 ftp 子系統(tǒng)退出到外殼
l FTP> ? 顯示 ftp 命令說(shuō)明,和 help 相同,格式:? [command]說(shuō)明:[command]指定需要幫助的命令名稱(chēng)。假如沒(méi)有指定 command,linux ftp命令參數(shù)將顯示全部命令的列表。
l FTP> append 使用當(dāng)前文檔類(lèi)型配置將本地文檔附加到遠(yuǎn)程電腦上的文檔。格式:append local-file [remote-file],說(shuō)明:local-file 指定要添加的本地文檔,remote-file指定要添加 local-file 的遠(yuǎn)程電腦上的文檔。假如省略了 remote-file,本地文檔名將被用作遠(yuǎn)程文檔名。
l FTP> ascii 將文檔傳送類(lèi)型配置為默認(rèn)的 ASCII。說(shuō)明:linux ftp命令參數(shù)支持兩種文檔傳送類(lèi)型,ASCII 碼和二進(jìn)制圖像,在傳送文本文檔時(shí)應(yīng)該使用ASCII。
l FTP> bell 轉(zhuǎn)換響鈴以在每個(gè)文檔傳送命令完成后響鈴??默認(rèn)情況下,鈴聲是關(guān)閉的。
l FTP> binary(或bi) 將文檔傳送類(lèi)型配置為二進(jìn)制
l FTP> bye(或by) 結(jié)束和遠(yuǎn)程電腦的linux ftp命令參數(shù)會(huì)話并退出linux ftp命令參數(shù)。
l FTP> cd 更改遠(yuǎn)程電腦上的工作目錄。格式:cd remote-directory,說(shuō)明:remote-directory 指定要更改的遠(yuǎn)程電腦上的目錄。
l FTP> close 結(jié)束和遠(yuǎn)程服務(wù)器的linux ftp命令參數(shù)會(huì)話并返回命令解釋程式。
l FTP> debug 轉(zhuǎn)換調(diào)試。當(dāng)調(diào)試打開(kāi)時(shí),發(fā)送到遠(yuǎn)程電腦的每個(gè)命令都打印,前面是字符串">"。默認(rèn)情況下,調(diào)試是關(guān)閉的。
l FTP> delete 刪除遠(yuǎn)程電腦上的文檔。格式:delete remote-file,說(shuō)明:remote-file 指定要?jiǎng)h除的文檔。
l FTP> dir 顯示遠(yuǎn)程目錄文檔和子目錄列表。格式:dir [remote-directory] [local-file],說(shuō)明:remote-directory 指定要查看其列表的目錄。假如沒(méi)有指定目錄,將使用遠(yuǎn)程電腦中的當(dāng)前工作目錄。Local-file 指定要存儲(chǔ)列表的本地文檔。假如沒(méi)有指定,輸出將顯示在屏幕上。
l FTP> disconnect 從遠(yuǎn)程電腦斷開(kāi),保留linux ftp命令參數(shù)提示。
l FTP> get 使用當(dāng)前文檔轉(zhuǎn)換類(lèi)型將遠(yuǎn)程文檔復(fù)制到本地,格式:get remote-file [local-file],說(shuō)明:remote-file 指定要復(fù)制的遠(yuǎn)程文檔,Local-file指定要在本地電腦上使用的名稱(chēng),假如沒(méi)有指定,文檔將命名為 remote-file。
l FTP>glob 轉(zhuǎn)換文檔名組合,組合允許在內(nèi)部文檔或路徑名中使用通配符(*和?),默認(rèn)情況下,組合是打開(kāi)的。
l FTP>hash 轉(zhuǎn)換已傳輸?shù)拿總€(gè)數(shù)據(jù)塊的數(shù)字簽名 (#) 打印,數(shù)據(jù)塊的大小是2048 字節(jié),默認(rèn)情況下,散列符號(hào)打印是關(guān)閉的。
l FTP>help 顯示linux ftp命令參數(shù)命令說(shuō)明。格式:help [command], 說(shuō)明:command 指定需要有關(guān)說(shuō)明的命令的名稱(chēng),假如沒(méi)有指定 command,linux ftp命令參數(shù)將顯示全部命令的列表。
l FTP>lcd 更改本地電腦上的工作目錄,默認(rèn)情況下,工作目錄是啟動(dòng)linux ftp命令參數(shù)的目錄。格式:lcd [directory],說(shuō)明:directory 指定要更改的本地電腦上的目錄,假如沒(méi)有指定directory,將顯示本地電腦中當(dāng)前的工作目錄。
l FTP>literal 將參數(shù)逐字發(fā)送到遠(yuǎn)程linux ftp命令參數(shù)服務(wù)器,將返回單個(gè)的linux ftp命令參數(shù)回復(fù)代碼,格式:literal argument [ ...],說(shuō)明:argument 指定要發(fā)送到linuxftp命令參數(shù)服務(wù)器的參數(shù)。
l FTP>ls 顯示遠(yuǎn)程目錄文檔和子目錄的縮寫(xiě)列表,格式:ls [remote-directory] [local-file],說(shuō)明:remote-directory 指定要查看其列表的目錄,假如沒(méi)有指定目錄,將使用遠(yuǎn)程電腦中的當(dāng)前工作目錄,local-file 指定要存儲(chǔ)列表的本地文檔??假如沒(méi)有指定,輸出將顯示在屏幕上。
l FTP>mdelete 刪除遠(yuǎn)程電腦上的文檔,格式:mdelete remote-files [ ...],說(shuō)明:remote-files 指定要?jiǎng)h除的遠(yuǎn)程文檔。
l FTP>mdir 顯示遠(yuǎn)程目錄文檔和子目錄列表,能夠使用 mdir 指定多個(gè)文檔,格式:mdir remote-files [ ...] local-file,說(shuō)明:remote-files 指定要查看列表的目錄,必須指定 remote-files,請(qǐng)鍵入 - 使用遠(yuǎn)程電腦上的當(dāng)前工作目錄。local-file 指定要還原列表的本地文檔,請(qǐng)鍵入- 在屏幕上顯示列表。
l FTP>mget 使用當(dāng)前文檔傳送類(lèi)型將遠(yuǎn)程文檔復(fù)制到本地電腦,格式:mget remote-files [ ...],說(shuō)明:remote-files 指定要復(fù)制到本地電腦的遠(yuǎn)程文檔。
l FTP>mkdir 創(chuàng)建遠(yuǎn)程目錄,格式:mkdir directory,說(shuō)明:directory 指定新的遠(yuǎn)程目錄的名稱(chēng)。
l FTP>mls 顯示遠(yuǎn)程目錄文檔和子目錄的縮寫(xiě)列表,格式:mls remote-files [ ...] local-file,說(shuō)明:remote-files 指定要查看列表的文檔??必須指定remote-files;,請(qǐng)鍵入- 使用遠(yuǎn)程電腦上的當(dāng)前工作目錄。local-file 指定要存儲(chǔ)列表的本地文檔,請(qǐng)鍵入 - 以在屏幕上顯示列表。
l FTP>mput 使用當(dāng)前文檔傳送類(lèi)型將本地文檔復(fù)制到遠(yuǎn)程電腦上。格式:mput local-files [ ...],說(shuō)明:local-files 指定要復(fù)制到遠(yuǎn)程電腦的本地文檔。
l FTP>open 和指定的linux ftp命令參數(shù)服務(wù)器連接,格式:open computer [port],說(shuō)明:computer 指定要連接的遠(yuǎn)程電腦??能夠通過(guò) IP 地址或電腦名稱(chēng)指定電腦(DNS 或主機(jī)文檔必須可用),假如自動(dòng)登錄打開(kāi)(默認(rèn)),ftp 還將嘗試自動(dòng)將用戶登錄到linux ftp命令參數(shù)服務(wù)器port 指定用來(lái)聯(lián)系linux ftp命令參數(shù)服務(wù)器的端口號(hào)。
l FTP>prompt 轉(zhuǎn)換提示,假如關(guān)閉提示時(shí) mget 及 mput 傳送任何文檔,linux ftp命令參數(shù)在多文檔傳送過(guò)程中將提示允許您有選擇地檢索或存儲(chǔ)文檔,默認(rèn)情況下,提示是打開(kāi)的。
l FTP>put 使用當(dāng)前文檔傳送類(lèi)型將本地文檔復(fù)制到遠(yuǎn)程電腦上,格式:put local-file [remote-file],說(shuō)明:local-file 指定要復(fù)制的本地文檔,remote-file指定要在遠(yuǎn)程電腦上使用的名稱(chēng)??假如沒(méi)有指定,文檔將命名為 local-file。
l FTP>pwd 顯示遠(yuǎn)程電腦上的當(dāng)前目錄。
l FTP>quit 結(jié)束和遠(yuǎn)程電腦的linux ftp命令參數(shù)會(huì)話并退出linux ftp命令參數(shù)。
l FTP>quote 將參數(shù)逐字發(fā)送到遠(yuǎn)程linux ftp命令參數(shù)服務(wù)器,將返回單個(gè)的linux ftp命令參數(shù)回復(fù)代碼。
l FTP>recv 使用當(dāng)前文檔傳送類(lèi)型將遠(yuǎn)程文檔復(fù)制到本地電腦,Recv 和 get相同。格式:recv remote-file [local-file],說(shuō)明:remote-file 指定要復(fù)制的遠(yuǎn)程文檔,local-file指定要在本地電腦上使用的名稱(chēng),假如沒(méi)有指定,文檔將命名為 remote-file。
l FTP>remotehelp 顯示遠(yuǎn)程命令幫助,格式:remotehelp [command],說(shuō)明:command 指定需要幫助的命令的名稱(chēng),假如沒(méi)有指定 command,linux ftp命令參數(shù)將顯示全部遠(yuǎn)程命令的列表。
l FTP>rename 重命名遠(yuǎn)程文檔,格式:rename filename newfilename,說(shuō)明:filename 指定要重命名的文檔,newfilename指定新的文檔名。
l FTP>rmdir 刪除遠(yuǎn)程目錄,格式:rmdir directory,說(shuō)明:directory 指定要?jiǎng)h除的遠(yuǎn)程目錄的名稱(chēng)。
l FTP>send 使用當(dāng)前文檔傳送類(lèi)型將本地文檔復(fù)制到遠(yuǎn)程電腦上,Send 和put 相同,格式:send local-file [remote-file],說(shuō)明:local-file 指定要復(fù)制的本地文檔,remote-file指定要在遠(yuǎn)程電腦上使用的名稱(chēng),假如沒(méi)有指定,文檔將命名為 local-file。
l FTP>status 顯示linux ftp命令參數(shù)連接和轉(zhuǎn)換的當(dāng)前狀態(tài)。
l FTP>trace 轉(zhuǎn)換數(shù)據(jù)包跟蹤,Trace 在運(yùn)行l(wèi)inux ftp命令參數(shù)命令時(shí)顯示每個(gè)數(shù)據(jù)包的路由。
l FTP>type 配置或顯示文檔傳送類(lèi)型,格式:type [type-name],說(shuō)明:type-name 指定文檔傳送類(lèi)型,默認(rèn)配置為 ascii,假如沒(méi)有指定type-name,將顯示當(dāng)前的類(lèi)型。
l FTP>user 指定遠(yuǎn)程電腦的用戶,格式:user username [password] [account],說(shuō)明:user-name 指定登錄到遠(yuǎn)程電腦所使用的用戶名,password 指定 user-name 的密碼,假如沒(méi)有指定,但必須指定,linux ftp命令參數(shù)會(huì)提示輸入密碼。account 指定登錄到遠(yuǎn)程電腦所使用的帳戶,假如沒(méi)有指定account,但是需要指定,linux ftp命令參數(shù)會(huì)提示您輸入帳戶。
l FTP>verbose 轉(zhuǎn)換 verbose 模式,假如打開(kāi),將顯示任何 linux ftp命令參數(shù)響應(yīng),在文檔傳送完成后,將同時(shí)顯示和傳送效率有關(guān)的統(tǒng)計(jì)信息,默認(rèn)情況下,verbose 是打開(kāi)的。
linux傳輸文件命令7.sftp
sftp(安全文件傳輸協(xié)議)與ftp 有著幾乎一樣的語(yǔ)法和功能。FTP 為 SSH的一部份,是一種傳輸檔案至 Blogger 伺服器的安全方式。它并不使用ftp守護(hù)進(jìn)程(ftpd或wu-ftpd)來(lái)進(jìn)行連接,而是有意義地增強(qiáng)系統(tǒng)的安全性。實(shí)際上,通過(guò)監(jiān)視一些系統(tǒng)中的log文件,可以注意到很多攻擊是針對(duì)于ftpd守護(hù)進(jìn)程的。sftp避免了這些攻擊從而可以停止在wu-ftpd上潛在的危險(xiǎn)。SFTP本身沒(méi)有單獨(dú)的守護(hù)進(jìn)程,它必須使用sshd守護(hù)進(jìn)程(端口號(hào)默認(rèn)是22)來(lái)完成相應(yīng)的連接操作。使用SFTP是非常安全的。但是,由于這種傳輸方式使用了加密/解密技術(shù),所以傳輸效率比普通的FTP要低得多,如果您對(duì)網(wǎng)絡(luò)安全性要求更高時(shí),可以使用SFTP代替FTP。
用法舉例:
(1) sftproot@10.48.30.192:/root/test.sh(直接將192上的文件復(fù)制到本地)
(2) sftproot@10.48.30.192:/root (直接連接到192的root目錄下,這樣就可以使用getput等命令了)
sftp使用在數(shù)據(jù)連接上使用ssh2,所以文件的傳輸是盡可能地安全。使用sftp代替ftp兩個(gè)主要的的原因是:
(1) password從不用明文傳輸,防止sniffer(嗅探器)的攻擊。
(2) 數(shù)據(jù)在傳輸時(shí)被加密,使用刺探和修改連接非常困難。
使用sftp2是非常簡(jiǎn)單的。讓我們假設(shè)你使用了你的帳戶:myname通過(guò)sftp連按上了主機(jī)host1??梢允褂妹睿簊ftp myname@host1。當(dāng)sftp2準(zhǔn)備好了來(lái)接受連接時(shí),它將顯示一個(gè)狀態(tài)提示符 sftp>。在sftp手冊(cè)中有完整的用戶可以使用的命令列表;其中有:
l quit:從這個(gè)應(yīng)用程序中退出。
l cd directory:改變當(dāng)前的遠(yuǎn)程工作目錄。
l lcd directory:改變當(dāng)前的本地工作目錄。
l ls [ -r ] [ -l ] [ file ... ]:列出在遠(yuǎn)地服務(wù)器上的文件名。如果是目錄,則列出目錄的內(nèi)容。當(dāng)命令行中指定了-r,則遞歸地顯示目錄樹(shù)。(默認(rèn)情況下,子目錄并不被訪問(wèn))。當(dāng)命令行中指定了-l,文件與目錄的權(quán)限,屬主,大小和修改時(shí)間被列出。當(dāng)沒(méi)有參數(shù)被指定,則.(當(dāng)前目錄)的內(nèi)容被列出。普通情況下選項(xiàng)-r和-l是互相不兼容的。
l lls [ -r ] [ -l ] [ file ... ]:與ls一樣,但是是對(duì)于本地文件操作。
l get [file ...]:從遠(yuǎn)程端傳送指定的文件到本地端。目錄內(nèi)容被遞歸地復(fù)制。
l put [ file ... ]:從本地端傳送指定的文件到遠(yuǎn)地端。目錄內(nèi)容被遞歸地復(fù)制。
l mkdir dir (rmdir dir):嘗試建立或刪除參數(shù)中指定的目錄。
l 通配符對(duì)于ls,lls,get和put是支持的。格式在sshregex手冊(cè)中有描述。
從sftp使用加密技術(shù)以來(lái),一直有一個(gè)障礙:連接速度慢(有2-3倍),但是這一點(diǎn)對(duì)于非常好的安全性來(lái)講只能放在一邊了。在一個(gè)測(cè)試中,局域網(wǎng)上的sniffer可以在一個(gè)小時(shí)中捉住ftp連接上的4個(gè)password.。sftp的使用可以從網(wǎng)絡(luò)上傳送文件并且除去這些安全問(wèn)題。
linux傳輸文件命令8.lftp
lftp 是一個(gè)功能強(qiáng)大的下載工具,它支持訪問(wèn)文件的協(xié)議: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在編譯的時(shí)候包含openssl庫(kù))。llftp非常像一個(gè)shell: 有命令補(bǔ)全,歷史記錄,允許多個(gè)后臺(tái)任務(wù)執(zhí)行等功能,使用起來(lái)非常方便。它還有書(shū)簽、排隊(duì)、鏡像、斷點(diǎn)續(xù)傳、多進(jìn)程下載等功能。
命令行語(yǔ)法
(1) lftp [-d] [-e cmd] [-p port][-u user[,pass]] [site]
-e在選擇后執(zhí)行命令
-u [,] 使用指定的用戶名/口令進(jìn)行驗(yàn)證
-p 連接指定的端口
Site:主機(jī)名,URL 或書(shū)簽的名字
(2) lftp -f script_file
執(zhí)行文件中的命令后退出
(3) lftp -c commands
執(zhí)行命令后退出
(4) lftp –version
顯示 lftp 版本后退出
(5) lftp --help
顯示幫助信息后退出
例子:
(1) 如果在命令行中輸入的站點(diǎn)名稱(chēng),lftp將直接登錄站點(diǎn),比如
lftp ftp://.............
(2) 如果在命令行不輸入站點(diǎn)名稱(chēng),則必須在進(jìn)入到lftp界面后用open命令打開(kāi)
Lftp
lftp :~> open ftp://...................
常用命令
l 下載單個(gè)文件和一組文件,斷點(diǎn)續(xù)傳用-c參數(shù)
lftp ................:/> get -c ls-lR.txt
lftp ...............:/> mget *.txt
l 鏡像(反鏡像即上傳)一個(gè)目錄,可以用多個(gè)線程并行鏡像一個(gè)目錄(--parallel=N)
lftp ................:/> mirror incoming local_name
lftp ................:/> mirror -R local_name
lftp ................:/> mirror --parallel=3 incominglocal_name
l 多線程下載,類(lèi)似網(wǎng)絡(luò)螞蟻的功能;缺省是5個(gè)線程
lftp ................:/> pget -n 4 ls-lR.txt
l 后臺(tái)任務(wù)管理
缺省情況下,按 Ctrl+z,正在執(zhí)行的任務(wù)將轉(zhuǎn)為后臺(tái)執(zhí)行,也可以在命令行末尾加&符號(hào)使任務(wù)在后臺(tái)執(zhí)行。用jobs命令可以查看所有的后臺(tái)進(jìn)程。用queue命令可以排隊(duì)新的任務(wù)。如果退出lftp是還有任務(wù)在后臺(tái)執(zhí)行,lftp將轉(zhuǎn)為后臺(tái)執(zhí)行。
l 其它用法
lftp支持類(lèi)似bash的管道操作,例如用下面的命令可以將ftp服務(wù)器上的特定目錄下(也可以是整個(gè)站點(diǎn))所有文件的大小存到本地的文件ls.txt中
lftp ................:/> du incoming > ls.txt
相關(guān)文件
(1) /etc/lftp.conf
全局配置文件,實(shí)際位置依賴(lài)系統(tǒng)配置文件目錄,可能在/etc,也可能在/usr/local/etc
(2) ~/.lftp/rc, ~/.lftprc
用戶配置文件,將在/etc/lftp.conf之后執(zhí)行,所以這里面的設(shè)置會(huì)覆蓋/etc/lftp.conf中的設(shè)置。
(3) lftp 缺省不會(huì)顯示 ftp 服務(wù)器的歡迎信息和錯(cuò)誤信息,這在很多時(shí)候不方便,因?yàn)槟阌锌赡芟胫肋@個(gè)服務(wù)器到底是因?yàn)闆](méi)開(kāi)機(jī)連不上,還是連接數(shù)已滿。如果是這樣,你可以在 ~/.lftprc 里寫(xiě)入一行,debug 3,就可以看到出錯(cuò)信息了。更多的配置選項(xiàng)請(qǐng)查man手冊(cè)或在lftp界面內(nèi)用命令 set -a 獲得。
(4) ~/.lftp/log
當(dāng)lftp轉(zhuǎn)為后臺(tái)非掛起模式執(zhí)行時(shí),輸出將重定向到這里
(5) ~/.lftp/bookmarks
這是lftp存儲(chǔ)書(shū)簽的地方,可以lftp查看bookmark命令
(6) ~/.lftp/cwd_history
這個(gè)文件用來(lái)存儲(chǔ)訪問(wèn)過(guò)的站點(diǎn)的工作目錄
(7) ~/.lftprc
在用lftp訪問(wèn)國(guó)內(nèi)一些ftp服務(wù)器時(shí),往往看到的中文是亂碼。不用慌,這是由于服務(wù)器和本地編碼不一致造成的。我們只要在主目錄下新建一個(gè)文件~/.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服務(wù)器:
lftpftp://user:password@site:port
lftpuser:password@site:port
lftpsite -p port -u user,password
lftpsite:port -u user,password
上面的幾種方式都能正常工作,不過(guò)密碼都是明文,這樣好像不太安全哦。沒(méi)關(guān)系,使用lftp user@site:port,系統(tǒng)會(huì)提示輸入password,密碼就回顯為******了,不過(guò)每次都輸入這么多,好麻煩哦。如果有類(lèi)似leapftp的站點(diǎn)管理器就好了,其實(shí)lftp早就給我們想好了:這就是bookmark。后面我們將會(huì)看到。
在終端運(yùn)行如manlftp或登錄ftp后輸入help就可以看到命令列表,下面我們看一下lftp常用的命令:
(1) ls:顯示遠(yuǎn)端文件列表(!ls顯示本地文件列表)。
(2) cd:切換遠(yuǎn)端目錄(lcd 切換本地目錄)。
(3) get:下載遠(yuǎn)端文件。
(4) mget:下載遠(yuǎn)端文件(可以用通配符也就是 *)。
(5) pget:使用多個(gè)線程來(lái)下載遠(yuǎn)端文件, 預(yù)設(shè)為五個(gè)。
(6) mirror:下載/上傳(mirror-R)/同步整個(gè)目錄。
(7) put:上傳文件。
(8) mput:上傳多個(gè)文件(支持通配符)。
(9) mv:移動(dòng)遠(yuǎn)端文件(遠(yuǎn)端文件改名)。
(10) rm:刪除遠(yuǎn)端文件。
(11) mrm:刪除多個(gè)遠(yuǎn)端文件(支持通配符)。
(12) mkdir:建立遠(yuǎn)端目錄。
(13) rmdir:刪除遠(yuǎn)端目錄。
(14) pwd:顯示目前遠(yuǎn)端所在目錄(lpwd顯示本地目錄)。
(15) du:計(jì)算遠(yuǎn)端目錄的大小
(16) !:執(zhí)行本地 shell的命令(由于lftp 沒(méi)有 lls, 故可用 !ls 來(lái)替代)
(17) Lcd:切換本地目錄
(18) Lpwd:顯示本地目錄
(19) Alias:定義別名
(20) Bookmark:設(shè)定書(shū)簽。
(21) Exit:退出ftp
(22) 快捷書(shū)簽:ftp中的bookmark命令,是將配置寫(xiě)到~/.lftp/bookmarks文件中;我們可以直接修改此文件,快速登陸ftp服務(wù)器。
linux傳輸文件命令9.wget
wget 是一個(gè)經(jīng)由 GPL 許可的可從網(wǎng)絡(luò)上自動(dòng)獲取文件的自由軟件包。它是一個(gè)非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 協(xié)議,支持代理服務(wù)器以及斷點(diǎn)續(xù)傳功能。 wget 可實(shí)現(xiàn)遞歸下載,即可跟蹤 HTML 頁(yè)面上的鏈接依次下載來(lái)創(chuàng)建遠(yuǎn)程服務(wù)器的本地版本,完全重建原始站點(diǎn)的目錄結(jié)構(gòu),實(shí)現(xiàn)遠(yuǎn)程網(wǎng)站的鏡像。在遞歸下載時(shí),wget 將頁(yè)面中的超級(jí)鏈接轉(zhuǎn)換成指向本地文件,方便離線瀏覽。由于非交互特性,wget 支持后臺(tái)運(yùn)行,用戶在退出系統(tǒng)后,仍可繼續(xù)運(yùn)行。功能強(qiáng)大,設(shè)置方便簡(jiǎn)單。
基本語(yǔ)法: wget [options][URL-list]
Options:
-r 遞歸下載服務(wù)器上所有的目錄和文件。由 -l選項(xiàng)來(lái)指定遞歸深度。
-b 后臺(tái)下載
-m 制作站點(diǎn)鏡像
-c 指定斷點(diǎn)續(xù)傳功能。該功能要求服務(wù)器支持?jǐn)帱c(diǎn)續(xù)傳。
-I 指定下載目錄列表,可實(shí)現(xiàn)批量下載
-A/-R 指定接受/拒絕下載列表,實(shí)現(xiàn)選擇性地下載
--proxy=on/off 指定是否利用代理服務(wù)器進(jìn)行下載
-t,--tries=NUMBER 最大嘗試鏈接次數(shù) (0 表示無(wú)限制,默認(rèn)為 20 次 )
-nc,--no-clobber 不覆蓋已存在的文件
-N,--timestamping 只下載比本地新的文件
-nd--no-directories 不進(jìn)行目錄結(jié)構(gòu)創(chuàng)建
-x,--force-directories 強(qiáng)制創(chuàng)建目錄結(jié)構(gòu)
-nH,--no-host-directories 不繼承主機(jī)目錄結(jié)構(gòu)
-P,--directory-prefix=PREFIX 設(shè)置目錄前綴
例子:遞歸下載 http://www.ibm.com.cn 站點(diǎn)的信息。下載所有顯示完整網(wǎng)頁(yè)所以需要的文件,如圖片等。在下載不進(jìn)行上層目錄搜索并將絕對(duì)鏈接轉(zhuǎn)換為相對(duì)鏈接。
wget -r -p -np -k http://www.ibm.com.cn
將在本地硬盤(pán)建立http://www.ibm.com.cn 的鏡像,鏡像文件存入當(dāng)前目錄下一個(gè)名為 www.ibm.com.cn 的子目錄中(也可以使用 -nH 參數(shù)指定不建立該子目錄,而直接在當(dāng)前目錄下建立鏡像的目錄結(jié)構(gòu)),遞歸深度為 4,重試次數(shù)為無(wú)窮(若連接出現(xiàn)問(wèn)題,wget 將永遠(yuǎn)重試下去,直至任務(wù)完成)
wget -m -l4 -t0 http://www.ibm.com.c
使用代理進(jìn)行下載,并實(shí)現(xiàn)斷點(diǎn)續(xù)傳。代理可以在環(huán)境變量 PROXY 或 wgetrc 文件中設(shè)定。 -c 選項(xiàng)要求服務(wù)支持?jǐn)帱c(diǎn)續(xù)傳。
wget -Y on -c http://www.ibm.com.cn
linux傳輸文件命令10.curl
curl是對(duì) libcurl 庫(kù)的一個(gè)命令行工具包裝。libcurl 庫(kù)中提供了相應(yīng)功能的 API,可以在程序中調(diào)用。 curl 使用 URL 的語(yǔ)法來(lái)傳輸文件,它支持 FTP, FTPS, HTTP, HTTPS, TFTP, SFTP, TELNET 等多種協(xié)議。 curl 功能強(qiáng)大,它提供了包括代理支持,用戶認(rèn)證,F(xiàn)TP 上載,HTTP post,SSL 連接,文件續(xù)傳等許多特性。
基本語(yǔ)法:curl [options …]
其中下載參數(shù)大約有 80 多個(gè),curl 的各個(gè)功能完全依靠這些參數(shù)來(lái)完成。下面舉例說(shuō)明 curl 的一些基本用法。
使用實(shí)例:
(1) 獲取 GNU 的主頁(yè)curl http://www.gnu.org
(2) 獲取 GNU 的 FTP 服務(wù)器上根目錄下的 README 文件curl ftp://ftp.gnu.org/README
(3) 從一個(gè)字典中獲取 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 會(huì)將從指定 url 處獲取的內(nèi)容打印到標(biāo)準(zhǔn)輸出上。如果需要保存在本地文件中,可以使用 -o,或使用 -O 參數(shù)指定使用遠(yuǎn)程主機(jī)上的文件名(如果 url 中沒(méi)有給出文件名的部分,則此操作將會(huì)失敗)curl -o gnu.html http://www.gnu.org 或者curl -O http:///www.gnu.org/index.htm
(6) 使用 -x 選項(xiàng)來(lái)使用代理進(jìn)行連接curl -x my-proxy:port ftp://ftp.somesite.com/READMEN
(7) 通過(guò)使用 curl 的 -T 選項(xiàng)來(lái)進(jìn)行上載curl -T - ftp://ftp.upload.com/upfile,此命令從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),并上載至遠(yuǎn)程 FTP 服務(wù)器上的 upfile 文件中。也可以指定上載一個(gè)本地文件curl -T localfile -a ftp://ftp.upload.com/upfile其中 -a 參數(shù)表示以添加方式將localfile 中的內(nèi)容附加到 upfile 的末尾。
總的來(lái)說(shuō),curl 適合用來(lái)進(jìn)行自動(dòng)的文件傳輸或操作序列,它是一個(gè)很好的模擬用戶在網(wǎng)頁(yè)瀏覽器上的行為的工具。尤其當(dāng)需要在程序中調(diào)用時(shí),libcurl 是個(gè)很好的選擇。
傳輸速度
因?yàn)榻?jīng)常在服務(wù)器見(jiàn)進(jìn)行文件傳輸,就對(duì)傳輸速度和帶寬有要求,這里總結(jié)一下可以影響以上rcp,scp,rsync,ftp,sftp,lftp,wget,curl這6個(gè)命令的傳輸速度和帶寬的參數(shù):
(1) rcp:沒(méi)有參數(shù)可以調(diào)整帶寬和傳輸速度
(2) scp:如果傳輸?shù)奈募](méi)有壓縮,可以使用-C參數(shù)(-C 使能壓縮選項(xiàng))。-c 選擇使用那個(gè)加密算法,具體對(duì)應(yīng)到ssh的-c cipher-spec,這個(gè)參數(shù)值會(huì)被傳給ssh,可選擇值3des,blowfish,des),使用blowfish會(huì)快很多,可以參看man ssh 中的-c cipher-spec??梢允褂?l 限制使用帶寬,Kbit/s。避免因?yàn)閭鬏斘募绊懫渌绦蚴褂脦挕?o ssh_option使用ssh選項(xiàng)
(3) rsync:-B, --block-size=SIZE 檢驗(yàn)算法使用的塊尺寸,默認(rèn)是700字節(jié);-z, --compress 對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理;--bwlimit=KBPS 限制I/O帶寬,KBytes per second ;-e, --rsh=COMMAND 指定使用rsh、ssh方式進(jìn)行數(shù)據(jù)同步
(4) ftp:FTP>ascii 將文檔傳送類(lèi)型配置為默認(rèn)的 ASCII。說(shuō)明:linux ftp命令參數(shù)支持兩種文檔傳送類(lèi)型,ASCII 碼和二進(jìn)制圖像,在傳送文本文檔時(shí)應(yīng)該使用ASCII。Binary二進(jìn)制傳輸。
(5) sftp: -B buffer_size, -C使用壓縮,-ossh_option使用ssh選項(xiàng)
(6) lftp:可以調(diào)整進(jìn)程數(shù)等
(7) wget: --limit-rate=amount限制帶寬。
(8) curl:-B/--use-ascii和--ciphers,--compressed等。
總結(jié)
(1) 傳輸性能:wget 通過(guò)支持后臺(tái)執(zhí)行及斷點(diǎn)續(xù)傳提高文件傳輸效率; rsync 則以其高效的傳輸及壓縮算法達(dá)到快傳輸?shù)哪康摹?/p>
(2) 配置難度:rcp 只需進(jìn)行簡(jiǎn)單的配置,創(chuàng)建.rhost文件以及設(shè)置/etc/hosts文件中主機(jī)名與IP地址列表; wget設(shè)置方便簡(jiǎn)單,只需在客戶端指定參數(shù)執(zhí)行命令即可; rsync 在使用前需要對(duì)服務(wù)端/etc/rsyncd.conf 進(jìn)行參數(shù)設(shè)定,配置內(nèi)容相對(duì)復(fù)雜。
(3) 安全性能:ftp、rcp不保證傳輸?shù)陌踩?,scp、rsync則均可基于ssh 認(rèn)證進(jìn)行傳輸,提供了較強(qiáng)的安全保障。wget 也可通過(guò)指定安全協(xié)議做到安全傳輸。
通過(guò)上述的對(duì)比不難發(fā)現(xiàn),每種文件傳輸方法基于其自身的特點(diǎn)與優(yōu)勢(shì)均有其典型的適用場(chǎng)景:
(1) ftp 作為最常用的入門(mén)式的文件傳輸方法,使用簡(jiǎn)單,易于理解,并且可以實(shí)現(xiàn)腳本自動(dòng)化;但是需要安裝ftp server才可以訪問(wèn)遠(yuǎn)程ftp server
(2) rcp 相對(duì)于ftp可以保留文件屬性并可遞歸的拷貝子目錄;
(3) scp 利用ssh傳輸數(shù)據(jù),并使用與ssh相同的認(rèn)證模式,相對(duì)于rcp提供更強(qiáng)的安全保障;
(4) wget實(shí)現(xiàn)遞歸下載,可跟蹤HTML頁(yè)面上的鏈接依次下載來(lái)創(chuàng)建遠(yuǎn)程服務(wù)器的本地版本,完全重建原始站點(diǎn)的目錄結(jié)構(gòu),適合實(shí)現(xiàn)遠(yuǎn)程網(wǎng)站的鏡像;
(5) curl 則適合用來(lái)進(jìn)行自動(dòng)的文件傳輸或操作序列,是一個(gè)很好的模擬用戶在網(wǎng)頁(yè)瀏覽器上的行為的工具;
(6) rsync 更適用于大數(shù)據(jù)量的每日同步,拷貝的速度很快,相對(duì)wget來(lái)說(shuō)速度快且安全高效。
(7) sftp使用在數(shù)據(jù)連接上使用ssh2,所以文件的傳輸是盡可能地安全。但傳輸速度慢。是ftp的替代品,比f(wàn)tp安全,不能訪問(wèn)http資源。
(8) lftp可以訪問(wèn)ftp資源,也可以訪問(wèn)http資源。支持?jǐn)帱c(diǎn)續(xù)傳,多進(jìn)程下載。