scp和rsync 均可實現(xiàn)文件的復(fù)制,但相比較,scp占用系統(tǒng)資源較小,rsync速度較快。當(dāng)小文件眾多時,rsync會導(dǎo)致硬盤I/O非常高,而scp基本不影響系統(tǒng)正常使用??筛鶕?jù)需要這倆選其一實現(xiàn)文件復(fù)制。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、虹口網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為虹口等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
scp 是secure copy的縮寫,scp是Linux系統(tǒng)下基于ssh登錄進行安全的遠程文件拷貝命令。
可以實現(xiàn)本地文件復(fù)制到遠程服務(wù)器,也可以將遠程文件復(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在遠程傳輸數(shù)據(jù)前,是需要進行登陸認(rèn)證的,這個過程可使用ssh協(xié)議也可以使用rsync協(xié)議完成。單冒號(:)使用的是ssh協(xié)議;雙冒號(::)使用的是rsync協(xié)議。
默認(rèn)情況下,rsync只確保源文件的所有內(nèi)容(明確排除的文件除外)都復(fù)制到目標(biāo)目錄。它不會使兩個目錄保持不同,并且不會刪除文件。如果要使目標(biāo)目錄成為源目錄的鏡像副本,則使用--delete選項??蓜h除只存在目標(biāo)目錄,不存在于源目錄的文件。
增量備份算是一個經(jīng)常使用的場景了。兩臺服務(wù)器之間進行文件定期備份,無需所有文件都copy一遍,僅復(fù)制有變動的文件。
具體做法是,第一次同步是全量備份,所有文件在基準(zhǔn)目錄里面同步一份。以后每一次同步都是增量備份,只同步源目錄與基準(zhǔn)目錄之間有變動的部分,將這部分保存在一個新的目標(biāo)目錄。這個新的目標(biāo)目錄之中,也是包含所有文件,但實際上,只有那些變動過的文件是存在于該目錄,其他沒有變動的文件都是指向基準(zhǔn)目錄文件的硬鏈接。
--link-dest 參數(shù)用來指定同步時的基準(zhǔn)目錄。
上面命令中, --link-dest 參數(shù)指定基準(zhǔn)目錄 /compare/path ,然后源目錄 /source/path 跟基準(zhǔn)目錄進行比較,找出變動的文件,將它們拷貝到目標(biāo)目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,后面就都是增量備份了。
一般服務(wù)器之間復(fù)制文件都比較大,為防止誤操作,最好在后臺運行。但因為需要和遠程服務(wù)器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置于后臺。無論是scp還是rsync都可操作如下:
后臺和前臺任務(wù)的切換
scp不支持?jǐn)帱c續(xù)傳,掛起scp進程可能導(dǎo)致數(shù)據(jù)缺失。傾向于使用rsync。
如果有其他任務(wù)需要使用nohup后臺運行,但執(zhí)行時卻忘記了使用nohup,也可參照此方法進行設(shè)置。
參考:1. Linux之scp命令及后臺運行scp
做法是:
1、在保存?zhèn)浞菸募哪夸?xxx 下建立一個文件 backup.sh,其內(nèi)容是:
tar -zcf bin.tar.gz /bin
tar -zcf boot.tar.gz /boot
tar -zcf dev.tar.gz /dev
tar -zcf etc.tar.gz /etc
tar -zcf lib32.tar.gz /lib32
tar -zcf lib64.tar.gz /lib64
tar -zcf lib.tar.gz /lib
tar -zcf opt.tar.gz /opt
tar -zcf sbin.tar.gz /sbin
tar -zcf selinux.tar.gz /selinux
tar -zcf srv.tar.gz /srv
tar -zcf var.tar.gz /var
tar -zcf usr.tar.gz /usr
2、在需要備份的時候進入到保存?zhèn)浞輧?nèi)容的目錄執(zhí)行一次命令: sh backup.sh
3、在保存?zhèn)浞菸募哪夸?xxx 下建立一個叫 restore.sh 的文件,其內(nèi)容如下:
tar -zxf /mnt/xxx/bin.tar.gz
tar -zxf /mnt/xxx/boot.tar.gz
tar -zxf /mnt/xxx/dev.tar.gz
tar -zxf /mnt/xxx/etc.tar.gz
tar -zxf /mnt/xxx/lib32.tar.gz
tar -zxf /mnt/xxx/lib64.tar.gz
tar -zxf /mnt/xxx/lib.tar.gz
tar -zxf /mnt/xxx/opt.tar.gz
tar -zxf /mnt/xxx/sbin.tar.gz
tar -zxf /mnt/xxx/selinux.tar.gz
tar -zxf /mnt/xxx/srv.tar.gz
tar -zxf /mnt/xxx/var.tar.gz
tar -zxf /mnt/xxx/usr.tar.gz
4、如果需要系統(tǒng)恢復(fù),我就用光盤啟動,mount 原來的根目錄為 yyy,接著 mount 保存?zhèn)浞菸募哪夸洖?xxx,接著進入到 /mnt/yyy,并在此下達命令: sh /mnt/xxx/restore.sh
1.Linux系統(tǒng)需要備份的數(shù)據(jù)
/root/目錄:
/home/目錄:
/var/spool/mail/目錄:
/etc/目錄:
其他目錄:
數(shù)據(jù)備份的原則: 不要把雞蛋放在同一個籃子里
2.安裝服務(wù)的數(shù)據(jù)
apache需要備份的數(shù)據(jù)
配置文件
網(wǎng)頁主目錄
日志文件
mysql需要備份的數(shù)據(jù)
源碼包安裝的mysql:/usr/local/mysqld/data/
RPM包安裝的mysql:/var/lib/mysql/
3.備份策略
完全備份: 完全備份就是指把所有需要備份的數(shù)據(jù)全部備份,當(dāng)然完全備份可以備份整塊硬盤,整個分區(qū)或某個具體的記錄(需要更大的硬盤空間和時間)
增量備份: 第一天完全備份,第二天備份當(dāng)天新增數(shù)據(jù),第三天備份當(dāng)天數(shù)據(jù),即每次都是備份新增數(shù)據(jù),每次備份后數(shù)據(jù)要進行壓縮(需要較小的硬盤空間恢復(fù)麻煩)
差異備份: 第一天完全備份,第二天備份當(dāng)天新增數(shù)據(jù),第三天備份相比原始備份新增數(shù)據(jù),即每次都是備份與原始數(shù)據(jù)相比的新增數(shù)據(jù)(比完全備份需要的空間小一點,比增量備份恢復(fù)容易一點)
1.dump命令
dump [選項] 備份之后的文件名 原文件或目錄
選項
-level? ? ? ? ? ? ? ? ? ? 就是我們說的0-9十個備份級別
-f 文件名? ? ? ? ? ? ? 指定備份之后的文件名
-u? ? ? ? ? ? ? ? ? ? ? ? ? 備份成功之后,把備份時間記錄在/etc/dumpdates文件
-v? ? ? ? ? ? ? ? ? ? ? ? ? 顯示備份過程中更多的輸出信息
-j? ? ? ? ? ? ? ? ? ? ? ? ? 調(diào)用bzib庫壓縮備份文件,其實就是把備份文件壓縮為.bz2格式
-W? ? ? ? ? ? ? ? ? ? ? ? 顯示允許被dump的分區(qū)的備份等級及備份時間
備份分區(qū)實例
dump -0uj -f /root/boot.bak.bz2 /boot/? ? ? ? 備份命令,先執(zhí)行一次完全備份,并壓縮和更新備份時間
cat /etc/dumpdates? ? ? ? ? ? ? ? 查看備份時間文件
cp install.log /boot/? ? ? ? ? ? ? ? 復(fù)制日志文件到boot分區(qū)
dump -luj -f /root/boot.bak1.bz2? ? ? ? ? ? ? 增量備份/boot分區(qū),并壓縮
dump -W? ? ? ? ? ? ? ? ? 查詢分區(qū)的備份時間及備份級別的
備份文件或目錄實例
dump -0j /root/etc.dump.bz2 /etc/? ? ? ? 完全備份/etc/目錄,只能使用0級別進行完全備份,而不再支持增量備份
注意: dump只能針對分區(qū)做增量備份,對文件或目錄不能進行增量備份
2.restore命令
restore [模式選項] [選項]
模式選項:restore命令常用的模式有一下四種,這四個模式不能混用
-C? ? ? ? ? ? 比較備份數(shù)據(jù)和實際數(shù)據(jù)的變化
-i? ? ? ? ? ?? 進入交互模式,手工選擇需要恢復(fù)的文件
-t? ? ? ? ? ?? 查看模式,用于查看備份文件中擁有哪些數(shù)據(jù)
-r? ? ? ? ? ?? 還原模式,用于數(shù)據(jù)還原
選項
-f? ? ? ? ? ? 指定備份文件的文件名
比較備份數(shù)據(jù)和實際數(shù)據(jù)的變化
mv /boot/vmlinuz-2.3.32--279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak
把boot目錄中內(nèi)核鏡像文件改個名字
restore -C -f /root/boot.bak.bz2
restore發(fā)現(xiàn)內(nèi)核鏡像文件丟失
查看模式
restore -t -f boot.bak.bz2
還原模式
還原boot.bak.bz2分區(qū)備份
mkdir boot.test
cd boot.test/
先還原完全備份的數(shù)據(jù)
restore -r -f /root/boot.bak.bz2
再恢復(fù)增量備份的數(shù)據(jù)
restore -r -f /root/boot.bak1.bz2
還原/etc/目錄的備份etc.dump.bz2
restore -r -f etc.dump.bz2
還原etc.dump.bz2備份
這里教大家如何用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ù)雜,其實很簡單,我來做個解釋,雙引號就不需要解釋了吧
.*\.\(php\|js\|css\) 簡化一下就是.*.(php|js|css),其實就是對.()|做了下轉(zhuǎn)義而已,開頭的.*匹配除換行符外的任意字符(這個懂正則表達式的應(yīng)該都明白)
找出文件后,就是如何備份這些文件了,tar需要指定源文件,怎么獲取find出來的這些文件,并傳給tar呢,xargs的作用就來了??吹较旅鎥args輸出的是什么了吧,這個正是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
分類: 電腦/網(wǎng)絡(luò) 操作系統(tǒng)/系統(tǒng)故障
問題描述:
在Linux中如何備份整個文件系統(tǒng)呢?有沒有類似Ghost那樣的工具可以將整個文件系統(tǒng)備份下來,需要時可以方便的恢復(fù)呢?
我需要在多個操作系統(tǒng)漸進行切換,種種原因又不能用VMware制作虛擬機,所以在多個操作系統(tǒng)間切換變得很麻煩,總不可能頻繁的安裝操作系統(tǒng)吧。所以不知道有沒有類似Ghost這樣的工具,可以把整個Linux或Unix操作系統(tǒng)備份下來。
解析:
如果是我的話,我會選擇軟件來進行系統(tǒng)備份。
下載地址是
2.cddc.vt.edu/pub/linux/utils/press/xtar-4.4.6.tar.gz
他叫Xtar 是桌面環(huán)境下查看和處理tar的工具。tar工具是Unix備份文件的工具,Linux繼承了它。tar幾乎可以工作于任何環(huán)境中,所以Linux老用戶都信賴它。但是tar是一個命令行的工具,沒有圖形界面。tar命令的參數(shù)非常多,常用的包括30多個,初學(xué)者往往不易掌握。Xtar是一個圖形化的tar工具。Xtar全部兼容tar命令,可以在桌面環(huán)境下完成打包整個目錄樹的任務(wù),這使得它特別適合用于備份。Xtar與文件系統(tǒng)無關(guān),可以使用在ext2、ext3、JFS、Reiser和其它文件系統(tǒng)上,支持各種備份介質(zhì):軟盤、光盤、可重寫的光盤、JazZip、磁帶等。