文件傳輸原理
文件傳輸是信息傳輸?shù)囊环N形式,它是在數(shù)據(jù)源和數(shù)據(jù)宿之間傳送文件數(shù)據(jù)的過程,也稱文件數(shù)據(jù)通信。操作系統(tǒng)把文件數(shù)據(jù)提取到內(nèi)存中做暫存,再復(fù)制到目的地,加密就是在文件外加了一個殼,文件本身還是一個整體,復(fù)制只是把這個整體轉(zhuǎn)移到其它地方,不需要解密,只有打開壓縮包時才需解密。一個大文件作為一個數(shù)據(jù)整體,是不可能瞬間從一臺 AIX 主機(jī)轉(zhuǎn)移到其它的主機(jī),傳輸是一個持續(xù)的過程,但不是把文件分割了,因此,如果在傳輸?shù)倪^程中意外中斷,目標(biāo)路徑中是不會有傳輸?shù)奈募,另外,如果傳輸(shù)氖嵌鄠文件,那么,這些文件是按順序分別傳輸,如果中間中斷,則正在傳輸?shù)奈募䲡䝼鬏斒,但是,之前已?jīng)傳完的文件傳輸成功(如果傳輸?shù)氖俏募䦃嚎s包,那么,不管里面有幾個文件,它本身被視為一個文件)。
AIX 平臺上,通常我們看到的 FTP、SCP、RCP、NFS 等等,都是可以用來傳輸文件數(shù)據(jù)的工具,下面我們將詳細(xì)介紹 AIX 上主要文件傳輸工具的特點以及用法。
[color=rgb(76, 110, 14

]
回頁首FTP(文件傳輸協(xié)議)
介紹
FTP 是最常見的文件傳輸工具,用于 Internet 上的控制文件的雙向傳輸,同時,它也是一個應(yīng)用程序(Application)。用戶可以通過它把自己的 AIX 機(jī)與世界各地所有運行 FTP 協(xié)議的服務(wù)器相連,訪問服務(wù)器上的大量程序和信息。使用 FTP 協(xié)議需要開放相應(yīng)的端口,比如默認(rèn)的 21 號端口。
特點
1 .在傳輸方式上具備高適應(yīng)性,大多數(shù)操作系統(tǒng)都支持 FTP 協(xié)議,在 AIX 平臺上可以通過 FTP 與其他平臺(諸如:AIX,Windows,Linux,Solaris,OEMVS 等等)機(jī)器進(jìn)行數(shù)據(jù)交互。
2 .文件傳輸方式很全面,比如提供 ASCII 傳輸模式與二進(jìn)制傳輸模式,用戶可以根據(jù)需要選擇不同傳輸模式。
3 . FTP 傳輸普通文件數(shù)據(jù)的優(yōu)勢是不容置疑的,但是對于一些重要保密數(shù)據(jù)的傳輸,其過程中有安全漏洞 , 即其默認(rèn)傳輸密碼的過程是明文傳送的 , 安全性極差。針對這一情況 FTP 做了安全方面的改進(jìn),產(chǎn)生了 SFTP,但是貌似使用情況并不是很廣泛。
4 . FTP 不能保留一個特定文件系統(tǒng)上的文件屬性(例如一個文件的保護(hù)模式或者修改次數(shù))。而且 FTP 協(xié)議很少對一個文件系統(tǒng)的整體結(jié)構(gòu)作假定,也不提供這樣的功能,比如遞歸的拷貝子目錄。在使用 FTP 命令時,需要注意 FTP 協(xié)議的這些特性。當(dāng)需要保留文件屬性或者需要遞歸的拷貝子目錄時,可以考慮使用 RCP/SCP 等命令。
常用示例
1 . [root@babu> /tsmserv] $ ftp dumber
圖 1.FTP 文件傳輸?shù)幕居梅?1
該命令是最基本的 FTP 命令,先登到目標(biāo)機(jī)器上,然后通過 CD 命令進(jìn)入到目標(biāo)文件目錄,采用 get 命令將目標(biāo)文件傳輸?shù)奖镜貦C(jī)器的當(dāng)前目錄,如果是往目標(biāo)文件目錄傳輸文件,那么采用 put 命令。默認(rèn)的文件傳輸方式是基于 ASCII 碼的,如果要以二進(jìn)制格式傳輸文件,那么要先輸入 bin 命令,然后再用 put 或 get 命令。
2 .如果需要傳輸一個目錄里的所有文件,那么可以使用 mput 或 mget 命令來替代 put 或 get 命令。
圖 2.FTP 文件傳輸?shù)幕居梅?2
RCP(remote copy 協(xié)議)
介紹
該命令用于在計算機(jī)之間進(jìn)行文件拷貝,用戶能用命令 RCP 從遠(yuǎn)程系統(tǒng)復(fù)制文件到本地系統(tǒng)中,RCP 執(zhí)行文件傳輸?shù)墓δ,它的操作?cp 命令很相似,但它可以通過網(wǎng)絡(luò)連接到另一系統(tǒng)。它有兩種格式:第一種格式用于文件到文件的拷貝;第二種格式用于把文件或目錄拷貝到另一個目錄中。
要使用 rcp,需要具備以下條件:
1 .對文件的讀權(quán)限以及對目錄路徑下所有目錄的讀和執(zhí)行權(quán)限。
2 .遠(yuǎn)程系統(tǒng)上的帳戶(登錄名)。
3 . rhosts
.rhosts 文件位于遠(yuǎn)程系統(tǒng)的主目錄下,其中包含本地系統(tǒng)的名稱和本地登錄名。
特點
- 文件復(fù)制功能很強(qiáng)大,它支持文件傳輸?shù)脑搭^和目的地分別為:兩個均為本地機(jī)器、一個是本地機(jī)器一個是遠(yuǎn)程機(jī)器、兩臺不同的遠(yuǎn)程機(jī)器或是同一臺遠(yuǎn)程機(jī)器上不同路徑下的文件傳輸。
- RCP 不提示輸入口令,它通過 RSH(remote shell)命令來執(zhí)行拷貝。
- 能夠保留一個特定文件系統(tǒng)上的文件屬性(例如一個文件的保護(hù)模式或者修改次數(shù),以及文件擁有者,所屬群組,權(quán)限和時間等等)。能夠勝任保留文件屬性或者需要遞歸地拷貝子目錄。
常用示例
- 將本地機(jī)器上的文件傳輸?shù)竭h(yuǎn)程機(jī)器的指定路徑。
[root@babu> /tsmserv] $ rcp ./tt dumber:/logs/mine/ |
圖 3. RCP 基本用法 1
2. 將遠(yuǎn)程機(jī)器 1 上的指定文件傳輸?shù)竭h(yuǎn)程機(jī)器 2 上的指定路徑。
[root@babu> /tsmserv] $ rcp aixsvt01:/svt1/filea dumber:/logs/mine/ |
圖 4. RCP 基本用法 2
3 .將指定的目錄傳輸?shù)竭h(yuǎn)程機(jī)器上的指定路徑。
圖 5. RCP 基本用法 3
SCP(安全拷貝 secure copy)
介紹
SCP 命令的用法和 RCP 命令格式非常類似,區(qū)別就是 SCP 提供更安全保障,SCP 在需要進(jìn)行驗證時會要求你輸入密碼或口令,一般推薦使用 SCP 命令,因為它比 RCP 更安全。SCP 命令使用 SSH 來傳輸數(shù)據(jù),并使用與 SSH 相同的認(rèn)證模式,提供同樣的安全保障,SSH 是目前較可靠得,為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。SCP 是基于 SSH 的應(yīng)用,所以進(jìn)行數(shù)據(jù)傳輸?shù)臋C(jī)器上必須支持 SSH 服務(wù)。
特點
- 相比 FTP 傳輸方式,SCP 類似于 RCP, 它能夠保留一個特定文件系統(tǒng)上的文件屬性,能夠勝任保留文件屬性或者需要遞歸的拷貝子目錄。
- 相比于 RCP,它具備更好文件傳輸保密性。與此同時,付出的代價就是文件傳輸時需要輸入密碼而且涉及到 SSH 的一些配置問題,這些都影響其使用的方便性,對于有特定需求的用戶,可能是比較合適的傳輸工具。
常用示例
- 使用 SCP 命令,需要輸入密碼,如果不想每次都輸入,可以通過配置 SSH,這樣在兩臺機(jī)器間拷貝文件時不需要每次都輸入用戶名和密碼:
圖 6. 生成 RSA 類型的密鑰 1
上述命令生成 RSA 類型的密鑰。在提示密鑰的保存路徑和密碼時,可以直接回車使用默認(rèn)路徑和空密碼。這樣,生成的公共密鑰保存 /.ssh/id_rsa.pub,私有密鑰保存在 /.ssh/id_rsa 。然后把這個密鑰對中的公共密鑰的內(nèi)容復(fù)制到要訪問的機(jī)器上的 /.ssh/authorized_keys 文件中。這樣,下次再訪問那臺機(jī)器時,就不用輸入密碼了。
圖 7. SCP 密鑰文件
將本地機(jī)器上的文件傳輸?shù)竭h(yuǎn)程機(jī)器的指定目錄下 , 并保持文件屬性不變。
圖 8. SCP 基本用法 1
NFS(Network File System 網(wǎng)絡(luò)文件系統(tǒng))
介紹
NFS 可以將遠(yuǎn)程主機(jī)上的分區(qū)(目錄)通過網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種機(jī)制,通過對網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶可以在本地系統(tǒng)上像操作本地分區(qū)一樣來對遠(yuǎn)程主機(jī)的共享分區(qū)(目錄)進(jìn)行操作。在 AIX 機(jī)器上可以通過 NFS 與其他 AIX/Linux 機(jī)器進(jìn)行文件傳輸,但是,如果要與 Windows 系統(tǒng)機(jī)器進(jìn)行文件傳輸,可能還需要在 windows 機(jī)器上安裝第三方的支持軟件,因為 Windows 不支持 NFS。
特點
1 .可以通過建立 NFS,把遠(yuǎn)程主機(jī)上的特定分區(qū)共享到本機(jī)目標(biāo)系統(tǒng)上,可以直接在目標(biāo)系統(tǒng)上拷貝文件數(shù)據(jù)到指定路徑,操作很直觀、方便。
2 .如果不做 umount 操作,NFS 始終連通可用,因此,對于頻繁進(jìn)行文件數(shù)據(jù)傳輸?shù)?AIX 主機(jī)之間采用 NFS 進(jìn)行數(shù)據(jù)交換,將會很便捷,一次配置,長久受益。
常用示例
在 AIX 平臺上可以采用 smity/smitty 工具進(jìn)行 NFS 的配置:
[root@aixsvt01> /] $ smitty nfs |
總結(jié)
在 AIX 系統(tǒng)上進(jìn)行文件傳輸有多種方式,要選擇合適的傳輸工具進(jìn)行傳輸,需要考慮幾個方面的因素。綜上所述,各種文件傳輸方式的特征表現(xiàn)各有千秋,我們從以下幾個方面綜合對比,更深入地了解它們各自的特性。
FTP 不需要做過多的配置,只需要開放相應(yīng)的端口(默認(rèn)是 21 號端口)即可, RCP 相對于 FTP 可以保留文件屬性以及可遞歸的拷貝子目錄,只需進(jìn)行簡單的配置。SCP 也不是很麻煩,如果想每次傳輸?shù)臅r候,不用輸入密碼,那么只需要配置一下相應(yīng)的密鑰。如果采用第三方工具,比如 WGET、RSYNC, 在使用前需要在服務(wù)端進(jìn)行參數(shù)設(shè)定,配置內(nèi)容相對復(fù)雜。
RCP、FTP 并不能保證傳輸?shù)陌踩,SFTP 則具備安全傳輸特性;SCP、RSYNC 則均可基于 SSH 認(rèn)證進(jìn)行傳輸,提供了較強(qiáng)的安全保障。 第三芳工具 WGET 也可通過指定安全協(xié)議做到安全傳輸。
通過上述的對比可以發(fā)現(xiàn),每種文件傳輸方法基于其自身的特點與優(yōu)勢,均有其典型的適用場景,選擇合適的文件傳輸方式,會讓您更加方便和愉悅地工作。
關(guān)于作者
劉舸,2007 年加入 IBM 中國軟件開發(fā)中心,從事與 Tivoli Storage Manager 的開發(fā)測試工作。
http://www.ibm.com/developerworks/cn/aix/library/1106_liuge_aixtransfer/index.html