Linux在兩個服務器直接傳文件的操作方法

scp是secure copy的簡寫, 是 linux 系統下基於 ssh 登陸進行安全的遠程文件拷貝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加強版。

因為scp傳輸是加密的,可能會稍微影響一下速度。另外,scp還非常不占資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它瞭。雖然 rsync比scp會快一點,但當小文件眾多的情況下,rsync會導致硬盤I/O非常高,而scp基本不影響系統正常使用。

場景:假設我現在有兩臺服務器(這裡的公網ip和內網ip相互傳都可以,當然用內網ip相互傳比較快,**公網ip不便公佈)

Sessions1: 47.95.208.2**
內網:172.17.31.174
User:root
Sessions2: 47.94.92.2**
內網:172.17.31.173
User:root

這裡常用的兩種辦法:

1.當從一個遠程服務器傳輸文件到另一個服務器上(你想傳給別人文件)

現在我們登錄172.17.31.173這臺服務器,想把當前的 test.mysql 傳給別人( 172.17.31.174 這臺服務器)

hostname -i 可以查看當前ip

命令:

scp test.sql [email protected]:/data/

如果兩臺服務器直接沒有配置免密登錄的話需要輸入密碼。

這裡的ip我用的是內網ip,所以傳的快點兒,走公網的話就慢很多(親測)

傳輸完成!

在ip為後綴174的服務器查看一下:

附錄:

scp [可選參數] file_source file_target

常用的-r,-C

-1: 強制scp命令使用協議ssh1
-2: 強制scp命令使用協議ssh2
-4: 強制scp命令隻使用IPv4尋址
-6: 強制scp命令隻使用IPv6尋址
-B: 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C: 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)
-p: 保留原文件的修改時間,訪問時間和訪問權限。
-q: 不顯示傳輸進度條。
-r: 遞歸復制整個目錄。
-v: 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。
-c cipher:        以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config:    指定一個替代的ssh配置文件,此參數直接傳遞給ssh。
-i identity_file: 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。
-l limit:         限定用戶所能使用的帶寬,以Kbit/s為單位。
-o ssh_option:    如果習慣於使用ssh_config(5)中的參數傳遞方式,
-P port:          註意是大寫的P, port是指定數據傳輸用到的端口號
-S program:       指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。

2.在本地服務器,從另一個服務器中獲取文件(你想從別人獲取文件)

在173服務data目錄中新建一個local_test 用來測試文件夾(測試-r參數的)

然後轉到本地服務器(*174這一臺),這裡的本地服務器是相對的。

命令:

scp -r [email protected]:/data/local_test /data/

拷貝文件夾則需要在scp後面加上-r

大白話描述: 

scp root@遠程的服務器Ip:文件路徑 存放路徑

在遠程服務器上拷貝到本地服務器(登錄遠程服務器傳給別人(本地)文件文件)

命令:

scp test.sql [email protected]:/data/

需要別人(本地)的ip地址傳輸

在本地服務器登錄,從遠程服務器獲取文件(自己主動去別人哪裡獲取文件)

命令:

scp -r [email protected]:/data/local_test /data/

需要遠程ip(別人)地址獲取文件

到此這篇關於Linux在兩個服務器直接傳文件的操作方法的文章就介紹到這瞭,更多相關Linux服務器傳文件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: