新聞中心
怎么進行scp用戶的rsync遷移,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供沙縣網(wǎng)站建設(shè)、沙縣做網(wǎng)站、沙縣網(wǎng)站設(shè)計、沙縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、沙縣企業(yè)網(wǎng)站模板建站服務(wù),10年沙縣做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
在 SSH 8.0 預(yù)發(fā)布公告中,OpenSSH 項目表示,他們認為 scp 協(xié)議已經(jīng)過時,不靈活,而且不容易修復(fù),然后他們繼而推薦使用 sftp
或 rsync
來進行文件傳輸。
然而,很多用戶都是從小用著 scp
命令長大的,所以對 rsync
并不熟悉。此外,rsync
可以做的事情也遠不止復(fù)制文件,這可能會給菜鳥們留下復(fù)雜和難以掌握的印象。尤其是,scp
命令的標(biāo)志大體上可以直接對應(yīng)到 cp
命令的標(biāo)志,而 rsync
命令的標(biāo)志卻和它大相徑庭。
讓我們跳進最常見的場景:復(fù)制文件和復(fù)制目錄。
復(fù)制文件
對于復(fù)制單個文件而言,scp
和 rsync
命令實際上是等價的。比方說,你需要把 foo.txt
傳到你在名為 server
的服務(wù)器上的主目錄下:
$ scp foo.txt me@server:/home/me/
相應(yīng)的 rsync
命令只需要輸入 rsync
取代 scp
:
$ rsync foo.txt me@server:/home/me/
復(fù)制目錄
對于復(fù)制目錄,就有了很大的分歧,這也解釋了為什么 rsync
會被認為比 scp
更復(fù)雜。如果你想把 bar
目錄復(fù)制到 server
服務(wù)器上,除了指定 ssh
信息外,相應(yīng)的 scp
命令和 cp
命令一模一樣。
$ scp -r bar/ me@server:/home/me/
對于 rsync
,考慮的因素比較多,因為它是一個比較強大的工具。首先,我們來看一下最簡單的形式:
$ rsync -r bar/ me@server:/home/me/
看起來很簡單吧?對于只包含目錄和普通文件的簡單情況,這就可以了。然而,rsync
更在意發(fā)送與主機系統(tǒng)中一模一樣的文件。讓我們來創(chuàng)建一個稍微復(fù)雜一些,但并不罕見的例子:
# 創(chuàng)建多級目錄結(jié)構(gòu)$ mkdir -p bar/baz# 在其根目錄下創(chuàng)建文件$ touch bar/foo.txt# 現(xiàn)在創(chuàng)建一個符號鏈接指回到該文件$ cd bar/baz$ ln -s ../foo.txt link.txt# 返回原位置$ cd -
現(xiàn)在我們有了一個如下的目錄樹:
bar├── baz│ └── link.txt -> ../foo.txt└── foo.txt 1 directory, 2 files
如果我們嘗試上面的命令來復(fù)制 bar
,我們會注意到非常不同的(并令人驚訝的)結(jié)果。首先,我們來試試 scp
:
$ scp -r bar/ me@server:/home/me/
如果你 ssh
進入你的服務(wù)器,看看 bar
的目錄樹,你會發(fā)現(xiàn)它和你的主機系統(tǒng)有一個重要而微妙的區(qū)別:
bar├── baz│ └── link.txt└── foo.txt 1 directory, 2 files
請注意,link.txt
不再是一個符號鏈接,它現(xiàn)在是一個 foo.txt
的完整副本。如果你習(xí)慣于使用 cp
,這可能會是令人驚訝的行為。如果你嘗試使用 cp -r
復(fù)制 bar
目錄,你會得到一個新的目錄,里面的符號鏈接和 bar
的一樣?,F(xiàn)在如果我們嘗試使用之前的 rsync
命令,我們會得到一個警告:
$ rsync -r bar/ me@server:/home/me/skipping non-regular file "bar/baz/link.txt"
rsync
警告我們它發(fā)現(xiàn)了一個非常規(guī)文件,并正在跳過它。因為你沒有告訴它可以復(fù)制符號鏈接,所以它忽略了它們。rsync
在手冊中有一節(jié)“符號鏈接”,解釋了所有可能的行為選項。在我們的例子中,我們需要添加 -links
標(biāo)志:
$ rsync -r --links bar/ me@server:/home/me/
在遠程服務(wù)器上,我們看到這個符號鏈接是作為一個符號鏈接復(fù)制過來的。請注意,這與 scp
復(fù)制符號鏈接的方式不同。
bar/├── baz│ └── link.txt -> ../foo.txt└── foo.txt 1 directory, 2 files
為了省去一些打字工作,并利用更多的文件保護選項,在復(fù)制目錄時可以使用歸檔標(biāo)志 -archive
(簡稱 -a
)。該歸檔標(biāo)志將做大多數(shù)人所期望的事情,因為它可以實現(xiàn)遞歸復(fù)制、符號鏈接復(fù)制和許多其他選項。
$ rsync -a bar/ me@server:/home/me/
如果你感興趣的話,rsync
手冊頁有關(guān)于存檔標(biāo)志的深入解釋。
注意事項
不過,使用 rsync
有一個注意事項。使用 scp
比使用 rsync
更容易指定一個非標(biāo)準的 ssh 端口。例如,如果 server
使用 8022 端口的 SSH 連接,那么這些命令就會像這樣:
$ scp -P 8022 foo.txt me@server:/home/me/
而在使用 rsync
時,你必須指定要使用的“遠程 shell”命令,默認是 ssh
。你可以使用 -e
標(biāo)志來指定。
$ rsync -e 'ssh -p 8022' foo.txt me@server:/home/me/
rsync
會使用你的 ssh
配置;但是,如果你經(jīng)常連接到這個服務(wù)器,你可以在你的 ~/.ssh/config
文件中添加以下代碼。這樣你就不需要再為 rsync
或 ssh
命令指定端口了!
Host server Port 8022
另外,如果你連接的每一臺服務(wù)器都在同一個非標(biāo)準端口上運行,你還可以配置 RSYNC_RSH
環(huán)境變量。
為什么你還是應(yīng)該切換到 rsync?
現(xiàn)在我們已經(jīng)介紹了從 scp
切換到 rsync
的日常使用案例和注意事項,讓我們花一些時間來探討一下為什么你可能想要使用 rsync
的優(yōu)點。很多人在很久以前就已經(jīng)開始使用 rsync
了,就是因為這些優(yōu)點。
即時壓縮
如果你和服務(wù)器之間的網(wǎng)絡(luò)連接速度較慢或有限,rsync
可以花費更多的 CPU 處理能力來節(jié)省網(wǎng)絡(luò)帶寬。它通過在發(fā)送數(shù)據(jù)之前對數(shù)據(jù)進行即時壓縮來實現(xiàn)。壓縮可以用 -z
標(biāo)志來啟用。
差量傳輸
rsync
也只在目標(biāo)文件與源文件不同的情況下復(fù)制文件。這可以在目錄中遞歸地工作。例如,如果你拿我們上面的最后一個 bar
的例子,并多次重新運行那個 rsync
命令,那么在最初的傳輸之后就不會有任何傳輸。如果你知道你會重復(fù)使用這些命令,例如備份到 U 盤,那么使用 rsync
即使是進行本地復(fù)制也是值得的,因為這個功能可以節(jié)省處理大型數(shù)據(jù)集的大量的時間。
同步
顧名思義,rsync
可以做的不僅僅是復(fù)制數(shù)據(jù)。到目前為止,我們只演示了如何使用 rsync
復(fù)制文件。如果你想讓 rsync
把目標(biāo)目錄變成源目錄的樣子,你可以在 rsync
中添加刪除標(biāo)志 -delete
。這個刪除標(biāo)志使得 rsync
將從源目錄中復(fù)制不存在于目標(biāo)目錄中的文件,然后它將刪除目標(biāo)目錄中不存在于源目錄中的文件。結(jié)果就是目標(biāo)目錄和源目錄完全一樣。相比之下,scp
只會在目標(biāo)目錄下添加文件。
結(jié)論
對于簡單的使用情況,rsync
并不比老牌的 scp
工具復(fù)雜多少。唯一顯著的區(qū)別是在遞歸復(fù)制目錄時使用 -a
而不是 -r
。然而,正如我們看到的,rsync
的 -a
標(biāo)志比 scp
的 -r
標(biāo)志更像 cp
的 -r
標(biāo)志。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
網(wǎng)站題目:怎么進行scp用戶的rsync遷移
網(wǎng)站URL:http://fisionsoft.com.cn/article/godhss.html