服務器之間的數據傳輸(scp&rsync)

1. 本地終端與服務器互傳數據(都在本地終端操作)

1.1 從本地終端上傳數據到服務器:

scp -P 具體端口號 -r 本地終端數據路徑 用戶名@服務器地址:服務器數據保存路徑

其中,-P表示指定端口號(注意P爲大寫),-r表示遞歸傳輸,下同。

1.2 從服務器下載數據到本地:

scp -P 具體端口號 -r 用戶名@服務器地址:服務器數據保存路徑 本地終端數據路徑

其實上面並不是本文的重點,本文重點是如何不覆蓋傳輸,即針對已存在的數據,直接跳過。

2. 不覆蓋傳輸

rsync -avzu -e 'ssh -p 具體端口號' --progress 本地服務器數據地址用戶名@服務器地址:遠端服務器數據地址

-avzu中的u選項,指定不覆蓋原目錄內容;
–progress可以查看拷貝的過程;
‘ssh -p 具體端口號’,指定端口號;

2.1 可能存在的問題

2.1.1

針對機器中不存在rsync指令的問題,可執行以下命令:

apt-get install rsync -y

2.1.2

傳送跟接收兩臺服務器都必須有rsync指令,如果存在以下錯誤:

bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]

即說明接受數據的服務器缺少rsync模塊,同樣在該服務器執行2.1.1的語句進行安裝即可。

參考:linux遠程scp,但是不覆蓋已經存在文件的方法
rsync同步文件如何指定服務器端口
【Linux】rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章