scp和rsync 均可實(shí)現(xiàn)文件的復(fù)制,但相比較,scp占用系統(tǒng)資源較小,rsync速度較快。當(dāng)小文件眾多時,rsync會導(dǎo)致硬盤I/O非常高,而scp基本不影響系統(tǒng)正常使用??筛鶕?jù)需要這倆選其一實(shí)現(xiàn)文件復(fù)制。
太倉網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,太倉網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為太倉上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的太倉做網(wǎng)站的公司定做!
scp 是secure copy的縮寫,scp是Linux系統(tǒng)下基于ssh登錄進(jìn)行安全的遠(yuǎn)程文件拷貝命令。
可以實(shí)現(xiàn)本地文件復(fù)制到遠(yuǎn)程服務(wù)器,也可以將遠(yuǎn)程文件復(fù)制到本地。
rsync 是remote sync的縮寫。使用rsync備份數(shù)據(jù)時,不會直接覆蓋以前的數(shù)據(jù)(如果數(shù)據(jù)已經(jīng)存在),而是先判斷已存在的數(shù)據(jù)和新數(shù)據(jù)的差異(默認(rèn)規(guī)則是文件大小或修改時間有差異),只有數(shù)據(jù)不相同時才會把不相同的部分覆蓋。在僅作增量數(shù)據(jù)的copy時比scp靈活。
一般CentOS默認(rèn)安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。
單個冒號和雙冒號的區(qū)別 :使用rsync在遠(yuǎn)程傳輸數(shù)據(jù)前,是需要進(jìn)行登陸認(rèn)證的,這個過程可使用ssh協(xié)議也可以使用rsync協(xié)議完成。單冒號(:)使用的是ssh協(xié)議;雙冒號(::)使用的是rsync協(xié)議。
默認(rèn)情況下,rsync只確保源文件的所有內(nèi)容(明確排除的文件除外)都復(fù)制到目標(biāo)目錄。它不會使兩個目錄保持不同,并且不會刪除文件。如果要使目標(biāo)目錄成為源目錄的鏡像副本,則使用--delete選項(xiàng)??蓜h除只存在目標(biāo)目錄,不存在于源目錄的文件。
增量備份算是一個經(jīng)常使用的場景了。兩臺服務(wù)器之間進(jìn)行文件定期備份,無需所有文件都copy一遍,僅復(fù)制有變動的文件。
具體做法是,第一次同步是全量備份,所有文件在基準(zhǔn)目錄里面同步一份。以后每一次同步都是增量備份,只同步源目錄與基準(zhǔn)目錄之間有變動的部分,將這部分保存在一個新的目標(biāo)目錄。這個新的目標(biāo)目錄之中,也是包含所有文件,但實(shí)際上,只有那些變動過的文件是存在于該目錄,其他沒有變動的文件都是指向基準(zhǔn)目錄文件的硬鏈接。
--link-dest 參數(shù)用來指定同步時的基準(zhǔn)目錄。
上面命令中, --link-dest 參數(shù)指定基準(zhǔn)目錄 /compare/path ,然后源目錄 /source/path 跟基準(zhǔn)目錄進(jìn)行比較,找出變動的文件,將它們拷貝到目標(biāo)目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,后面就都是增量備份了。
一般服務(wù)器之間復(fù)制文件都比較大,為防止誤操作,最好在后臺運(yùn)行。但因?yàn)樾枰瓦h(yuǎn)程服務(wù)器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置于后臺。無論是scp還是rsync都可操作如下:
后臺和前臺任務(wù)的切換
scp不支持?jǐn)帱c(diǎn)續(xù)傳,掛起scp進(jìn)程可能導(dǎo)致數(shù)據(jù)缺失。傾向于使用rsync。
如果有其他任務(wù)需要使用nohup后臺運(yùn)行,但執(zhí)行時卻忘記了使用nohup,也可參照此方法進(jìn)行設(shè)置。
參考:1. Linux之scp命令及后臺運(yùn)行scp
這里教大家如何用find、xargs和tar命令完成上面的功能。
建立一個測試環(huán)境,新建幾個文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png ?a.php ?b.js ?c.css
接下來,通過find命令找出指定后綴的文件,為了支持多個后綴文件,find命令用到了正則匹配
# find . -type f -regex ".*\.\(php\|js\|css\)"
./b.js
./a.php
./c.css
-regex后面的參數(shù)看起來很復(fù)雜,其實(shí)很簡單,我來做個解釋,雙引號就不需要解釋了吧
.*\.\(php\|js\|css\) 簡化一下就是.*.(php|js|css),其實(shí)就是對.()|做了下轉(zhuǎn)義而已,開頭的.*匹配除換行符外的任意字符(這個懂正則表達(dá)式的應(yīng)該都明白)
找出文件后,就是如何備份這些文件了,tar需要指定源文件,怎么獲取find出來的這些文件,并傳給tar呢,xargs的作用就來了。看到下面xargs輸出的是什么了吧,這個正是tar需要的。
# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否備份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root ? ? ? ? 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root ? ? ? ? 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root ? ? ? ? 0 2014-03-14 10:38 ./c.css
linux備份文件夾的命令是什么?在Linux操作系統(tǒng)中,可用于備份文件夾的命令有兩個:cp命令、dump命令,本文為大家詳細(xì)介紹一下這兩個命令,希望能夠給你們帶來幫助。
1、dump命令
Linux dump命令用于備份文件系統(tǒng)。
dump為備份工具程序,可將目錄或整個文件系統(tǒng)備份至指定的設(shè)備,或備份成一個大文件。
語法:
dump[-cnu][-0123456789][-b
區(qū)塊大小][-B區(qū)塊數(shù)目][-d密度][-f設(shè)備名稱][-h層級][-s磁帶長度][-T日期][目錄或文件系統(tǒng)]或dump[-wW]
參數(shù):
-0123456789 備份的層級
-b區(qū)塊大小 指定區(qū)塊的大小,單位為KB
-B區(qū)塊數(shù)目 指定備份卷冊的區(qū)塊數(shù)目
-c 修改備份磁帶預(yù)設(shè)的密度與容量
-d密度 設(shè)置磁帶的密度,單位為BPI
-f設(shè)備名稱 指定備份設(shè)備
-h層級 當(dāng)備份層級等于或大于指定的層級時,將不備份用戶標(biāo)示為nodump的文件
-n 當(dāng)備份工作需要管理員介入時,向所有operator群組中的使用者發(fā)出通知
-s磁帶長度 備份磁帶的長度,單位為英尺
-T日期 指定開始備份的時間與日期
-u 備份完畢后,在/etc/dumpdates中記錄備份的文件系統(tǒng),層級,日期與時間等
-w 與-W類似,但僅顯示需要備份的文件
-W 顯示需要備份的文件及其最后一次備份的層級,時間與日期。
2、cp命令
Linux cp命令主要用于復(fù)制文件或目錄。
語法:
①cp [options] source dest
②cp [options] source... directory
參數(shù):
-a 此選項(xiàng)通常在復(fù)制目錄時使用,它保留鏈接、文件屬性,并復(fù)制目錄下的所有內(nèi)容,其作用等于dpR參數(shù)組合
-d 復(fù)制時保留鏈接,這里所說的鏈接相當(dāng)于Windows系統(tǒng)中的快捷方式
-f 覆蓋已經(jīng)存在的目標(biāo)文件而不給出提示
-i 與-f選項(xiàng)相反,在覆蓋目標(biāo)文件之前給出提示,要求用戶確認(rèn)是否覆蓋,回答y時目標(biāo)文件將被覆蓋
-p 除復(fù)制文件的內(nèi)容外,還把修改時間和訪問權(quán)限也復(fù)制到新文件中
-r 若給出的源文件是一個目錄文件,此時將復(fù)制該目錄下所有的子目錄和文件
-l 不復(fù)制文件,只是生成鏈接文件。