這篇文章主要介紹“l(fā)inux下rsync的基礎(chǔ)介紹和高級(jí)用法”,在日常操作中,相信很多人在linux下rsync的基礎(chǔ)介紹和高級(jí)用法問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”linux下rsync的基礎(chǔ)介紹和高級(jí)用法”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司專業(yè)提供德陽服務(wù)器托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買德陽服務(wù)器托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。
rsync 基礎(chǔ)
我為一個(gè)大概擁有 35,000 開發(fā)者并有著幾十 TB 文件的全球性機(jī)構(gòu)管理二進(jìn)制倉庫。我經(jīng)常一次移動(dòng)或者歸檔上百 GB 的數(shù)據(jù)。使用的是 rsync。這種經(jīng)歷使我對(duì)這個(gè)簡(jiǎn)單的工具充滿信心。(所以,是的,我在家使用它來備份我的 Linux 系統(tǒng))
基礎(chǔ)的 rsync 命令 很簡(jiǎn)單。
rsync -av 源目錄 目的地目錄
實(shí)際上,在各種指南中教的 rsync 命令在大多數(shù)通用情況下都運(yùn)行的很好。然而,假設(shè)我們需要備份大量的數(shù)據(jù)。例如包含 2,000 個(gè)子目錄的目錄,每個(gè)包含 50GB 到 700GB 的數(shù)據(jù)。在這個(gè)目錄運(yùn)行 rsync 可能需要大量時(shí)間,尤其是當(dāng)你使用校驗(yàn)選項(xiàng)時(shí)(我傾向使用)。
當(dāng)我們?cè)噲D同步大量數(shù)據(jù)或者通過慢的網(wǎng)絡(luò)連接時(shí),可能遇到性能問題。讓我給你展示一些我使用的方法來確保好的性能和可靠性。
rsync 高級(jí)用法
rsync 運(yùn)行時(shí)出現(xiàn)的第一行是:“正在發(fā)送增量文件列表?!?如果你在網(wǎng)上搜索這一行,你將看到很多類似的問題:為什么它一直運(yùn)行,或者為什么它似乎掛起了。
這里是一個(gè)基于這個(gè)場(chǎng)景的例子。假設(shè)我們有一個(gè) /storage 的目錄,我們想要備份到一個(gè)外部 USB 磁盤,我們可以使用下面的命令:
rsync -cav /storage /media/WDPassport
-c 選項(xiàng)告訴 rsync 使用文件校驗(yàn)和而不是時(shí)間戳來決定改變的文件,這通常消耗的時(shí)間更久。為了分解 /storage 目錄,我通過子目錄同步,使用 find 命令。這是一個(gè)例子:
find /storage -type d -exec rsync -cav {} /media/WDPassport \;
這看起來可以,但是如果 /storage 目錄有任何文件,它們將被跳過。因此,我們?nèi)绾瓮?/storage 目錄中的文件呢?同樣有一個(gè)細(xì)微的差別是這些選項(xiàng)將造成 rsync 會(huì)同步 . 目錄,該目錄是源目錄自身;這意味著它會(huì)同步子目錄兩次,這并不是我們想要的。
長(zhǎng)話短說,我的解決方案是一個(gè) “雙-遞增” 腳本 。這允許我分解一個(gè)目錄,例如,當(dāng)你的家目錄有多個(gè)大的目錄,例如音樂或者家庭照片時(shí),分解 /home 目錄為單個(gè)的用戶家目錄。
這是我的 腳本 的一個(gè)例子:
HOMES="alan" DRIVE="/media/WDPassport" for HOME in $HOMES; do cd /home/$HOME rsync -cdlptgov --delete . /$DRIVE/$HOME find . -maxdepth 1 -type d -not -name "." -exec rsync -crlptgov --delete {} /$DRIVE/$HOME \; done
第一個(gè) rsync 命令拷貝它在源目錄中發(fā)現(xiàn)的文件和目錄。然而,它將目錄留著不處理,因此我們能夠通過 find 命令迭代它們。這通過傳遞 -d 參數(shù)來完成,它告訴 rsync 不要遞歸目錄。
-d, --dirs 傳輸目錄而不遞歸
然后 find 命令傳遞每個(gè)目錄來單獨(dú)運(yùn)行 rsync。之后 rsync 拷貝目錄的內(nèi)容。這通過傳遞 -r 參數(shù)來完成,它告訴 rsync 要遞歸目錄。
-r, --recursive 遞歸進(jìn)入目錄
這使得 rsync 使用的增量文件保持在一個(gè)合理的大小。
大多數(shù) rsync 指南為了簡(jiǎn)便使用 -a (或者 archive) 參數(shù)。這實(shí)際是一個(gè)復(fù)合參數(shù)。
-a, --archive 歸檔模式;等價(jià)于 -rlptgoD(沒有 -H,-A,-X)
我傳遞的其他參數(shù)包含在 a 中;這些是 -l、-p、-t、-g和 -o。
-l, --links 復(fù)制符號(hào)鏈接作為符號(hào)鏈接 -p, --perms 保留權(quán)限 -t, --times 保留修改時(shí)間 -g, --group 保留組 -o, --owner 保留擁有者(只適用于超級(jí)管理員)
--delete 選項(xiàng)告訴 rsync 刪除目的地目錄中所有在源目錄不存在的任意文件。這種方式,運(yùn)行的結(jié)果僅僅是復(fù)制。你同樣可以排除 .Trash 目錄或者 MacOS 創(chuàng)建的 .DS_Store 文件。
-not -name ".Trash*" -not -name ".DS_Store"
注意
最后一條建議: rsync 可以是破壞性的命令。幸運(yùn)的是,它的睿智的創(chuàng)造者提供了 “空運(yùn)行” 的能力。如果我們加入 n 選項(xiàng),rsync 會(huì)顯示預(yù)期的輸出但不寫任何數(shù)據(jù)。
`rsync -cdlptgovn --delete . /$DRIVE/$HOME`
到此,關(guān)于“l(fā)inux下rsync的基礎(chǔ)介紹和高級(jí)用法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
本文題目:linux下rsync的基礎(chǔ)介紹和高級(jí)用法
文章轉(zhuǎn)載:http://jinyejixie.com/article16/pddidg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、做網(wǎng)站、靜態(tài)網(wǎng)站、ChatGPT、搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)