首頁 > 軟體

Linux在兩個伺服器直接傳檔案的操作方法

2022-08-03 14:09:47

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 root@172.17.31.174:/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 root@172.17.31.173:/data/local_test /data/

拷貝資料夾則需要在scp後面加上-r

大白話描述: 

scp root@遠端的伺服器Ip:檔案路徑 存放路徑

在遠端伺服器上拷貝到本地伺服器(登入遠端伺服器傳給別人(本地)檔案檔案)

命令:

scp test.sql root@172.17.31.174:/data/

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

在本地伺服器登入,從遠端伺服器獲取檔案(自己主動去別人哪裡獲取檔案)

命令:

scp -r root@172.17.31.173:/data/local_test /data/

需要遠端ip(別人)地址獲取檔案

到此這篇關於Linux在兩個伺服器直接傳檔案的操作方法的文章就介紹到這了,更多相關Linux伺服器傳檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com