有時候大家需要將一臺服務(wù)器內(nèi)的數(shù)據(jù)傳輸?shù)搅硗庖慌_設(shè)備,有很多種方法,如果兩臺物理機離得很近,可以通過移動硬盤傳輸。如果是跨地區(qū)的,有人首先通過filezilla將數(shù)據(jù)下載到windows電腦上,在通過filezilla上傳到另外一臺服務(wù)器,這樣做都可以,不過這顯然不符合我們一貫追求效率的原則,如果在是在服務(wù)器設(shè)備間傳輸數(shù)據(jù),其實是可以直接傳輸?shù)模【幵谶@里給大家一種實用的方法,比較好用的是scp與rsync命令。這次內(nèi)容首先來介紹scp。

準(zhǔn)備工作
在兩臺服務(wù)器設(shè)備間傳輸數(shù)據(jù),首先保證兩臺設(shè)備都是聯(lián)網(wǎng)的,至少有一臺能連外網(wǎng),得到兩臺設(shè)備的IP地址,這里注意,如果是192.168.1.XXX,這是內(nèi)網(wǎng)IP,只能通過這臺設(shè)備上傳和下載。另外就是兩臺服務(wù)器的賬號密碼。這樣就可以了。
假設(shè)一臺設(shè)備IP為:123.tongyuangene.com
另一臺設(shè)備IP為:1t.tongyuangene.com
要傳輸文件為/ifs1/Database/nt_makeblastdb/nt 這個文件。
scp命令
scp是secure copy的簡寫,用于在linux下進(jìn)行遠(yuǎn)程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進(jìn)行拷貝不能跨服務(wù)器,而且scp傳輸是加密的。scp可以通過ssh傳輸也可以通過ftp傳輸。上面的那個例子可以這樣來操作:

scp的語法其實很簡單,主要注意里面的“@”與“:”。
- 第一部分:scp -r :如果傳輸是文件夾需要加-r,傳輸單個文件可以不加;
- 第二部分:要上傳的文件或者文件夾;
- 第三部分:另一臺設(shè)備的用戶名和IP地址,用@符號連接;
- 第四部分:冒號“:”,另一臺設(shè)別上存儲文件的路徑。
等待驗證,第一次會問是否繼續(xù)連接,輸入yes即可。然后輸入密碼即可開始上傳數(shù)據(jù)。
數(shù)據(jù)下載也是同樣的步驟,只需要將路徑替換一下順序即可。
注意最后面的傳輸?shù)奖镜氐穆窂剑粋€點,表示數(shù)據(jù)存儲在當(dāng)前目錄下。
SCP的選項參數(shù)
scp的選項參數(shù)不多,主要使用的就是-r。
-1:強制scp命令使用協(xié)議ssh1
-2:強制scp命令使用協(xié)議ssh2
-4:強制scp命令只使用IPv4尋址
-6:強制scp命令只使用IPv6尋址
-B:使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C:允許壓縮。(將-C標(biāo)志傳遞給ssh,從而打開壓縮功能)
-p:保留原文件的修改時間,訪問時間和訪問權(quán)限。
-q:不顯示傳輸進(jìn)度條。
-r:遞歸復(fù)制整個目錄。
-v:詳細(xì)方式顯示輸出。
-c cipher:以cipher將數(shù)據(jù)傳輸進(jìn)行加密,這個選項將直接傳遞給ssh。
-F ssh_config:指定一個替代的ssh配置文件,此參數(shù)直接傳遞給ssh。
-i identity_file:從指定文件中讀取傳輸時使用的密鑰文件,此參數(shù)直接傳遞給ssh。
-l limit:限定用戶所能使用的帶寬,以Kbit/s為單位。
-o ssh_option:如果習(xí)慣于使用ssh_config(5)中的參數(shù)傳遞方式,
-P port:注意是大寫的P, port是指定數(shù)據(jù)傳輸用到的端口號
-S program:指定加密傳輸時所使用的程序。