站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Linux工具rsync 和tar 命令對(duì)系統(tǒng)的全量和增量備份

        Linux工具rsync 和tar 命令對(duì)系統(tǒng)的全量和增量備份

        rsync命令語(yǔ)句格式類似于scp,功能強(qiáng)大,節(jié)省帶寬和時(shí)間,適合備份重要不怎么變動(dòng)的文件,,同時(shí)可以服務(wù)端和在災(zāi)備端,可以恢復(fù),任意一方出現(xiàn)問題,都可以從對(duì)端恢復(fù)。但是只能夠一個(gè)備份副本,不能多個(gè),

        tar可以備份很多內(nèi)容,也可以備份不同時(shí)段的文件

        ————————————————————–

        1)rsync備份

        rsync由于本身的特性,在第一次rsync備份后,以后每次都只是傳內(nèi)容有改變的部分,而不是全部傳。所以,rsync在做鏡像方面是很不錯(cuò)的,只傳增量,節(jié)省帶寬、時(shí)間。

        常規(guī)本地rsync備份命令可以是:

        rsync -az –delete SRC DST

        其中:

        -z 壓縮

        -a 簡(jiǎn)單理解就是保持一致性

        –delete 嚴(yán)格保證DST內(nèi)容與SRC一致,即DST中SRC沒有的文件會(huì)被刪除掉 (–delete-before表示在進(jìn)行同步之前,先將目標(biāo)目錄全部刪除,然后再進(jìn)行同步操作)

        具體命令詳解可以查看:http://man.linuxde.net/rsync

        只用先配置好服務(wù)端可客戶端機(jī)器對(duì)應(yīng)的文件和服務(wù)即可操作

        實(shí)例如下:

        [root@linux-node3 mnt]# mkdir test

        [root@linux-node3 mnt]# cd test/

        [root@linux-node3 mnt]# ls

        test

        [root@linux-node3 test]# echo “a1” > a1.txt

        [root@linux-node3 test]# echo “a2” > a2.txt

        [root@linux-node3 test]# echo “a3” > a3.txt

        [root@linux-node3 test]# ls

        a1.txt a2.txt a3.txt aaa

        現(xiàn)在使用rsync進(jìn)行增量備份

        [root@linux-node3 mnt]# rsync -az –delete test /opt/

        [root@linux-node3 mnt]# ls /opt/

        test

        [root@linux-node3 mnt]# ls /opt/

        test wang

        [root@linux-node3 mnt]# rsync -az –delete test /opt/

        [root@linux-node3 mnt]# ls /opt/

        test wang

        [root@linux-node3 mnt]# ls /opt/test/

        a1.txt a2.txt a3.txt a4 aaa

        10

        注意:

        –delete參數(shù)要放在源目錄和目標(biāo)目錄前,并且兩個(gè)目錄結(jié)構(gòu)一定要一致!不能使用./*。

        如果目錄結(jié)構(gòu)不一致,則不會(huì)刪除目標(biāo)目錄中的目錄。如上,/opt/wang目錄由于目錄結(jié)構(gòu)不一致,故它是多余的但不刪除。

        現(xiàn)在進(jìn)行增量備份,rsync在第一次同步后,后面就只同步內(nèi)容有改變的部分

        溫馨提示:

        rsync使用–delete參數(shù),在做增量方式的全備份可以說是最佳選擇。但這樣只有一個(gè)副本,也就是說如果你想查以前某個(gè)時(shí)間段的數(shù)據(jù),是沒法查到的。

        2)tar打包備份

        tar的備份就是把文件打包起來,保存到其他地方,可以滿足查檔要求,也即上面說到的。

        再配合crontab,就可以實(shí)現(xiàn)定時(shí)增量備份

        下面說說tar的三種增量備份方式:

        a)第一種方式:tar -g snapshot方法

        利用tar -g參數(shù),在第一次備份時(shí)候生成時(shí)間戳文件,里面包含指定備份目錄下的所有文件的一個(gè)時(shí)間戳,下次增量備份,tar會(huì)利用時(shí)間戳文件去比較,只有那些內(nèi)容在這段時(shí)間有修改的文件,才會(huì)被打包。

        實(shí)例說明:

        [root@linux-node3 mnt]# ls

        [root@linux-node3 mnt]# mkdir test

        [root@linux-node3 mnt]# echo “123” > test/test1

        [root@linux-node3 mnt]# echo “123123” > test/test2

        [root@linux-node3 mnt]# mkdir test/aaa

        [root@linux-node3 mnt]# ls test/

        aaa test1 test2

        先執(zhí)行完整備份

        [root@linux-node3 mnt]# tar -g snapshot -zcf backup_full.tar.gz test

        [root@linux-node3 mnt]# ls

        aaa backup_full.tar.gz snapshot test

        [root@linux-node3 mnt]# cat snapshot

        GNU tar-1.23-2

        1490172505723210801014901724572030064696476940641test/aaa014901724572030064696476940639testDaaaYtest1Ytest2

        接下來進(jìn)行差異和增量備份操作:

        增加數(shù)據(jù)

        [root@linux-node3 mnt]# echo “aaaaa” >> test/test1

        [root@linux-node3 mnt]# echo “aaaaa11111” >> test/test3

        [root@linux-node3 mnt]# ls test/

        aaa test1 test2 test3

        執(zhí)行第一次的增量備份 (注意tarball檔名)

        [root@linux-node3 mnt]# tar -g snapshot -zcf backup_incremental_1.tar.gz test

        [root@linux-node3 mnt]# ls

        aaa backup_full.tar.gz backup_incremental_1.tar.gz snapshot test

        [root@linux-node3 mnt]# cat snapshot

        GNU tar-1.23-2

        1490172606339019504014901724572030064696476940641test/aaa014901725622320064796476940639testDaaaYtest1Ntest2Ytest3

        再增加差異數(shù)據(jù)

        [root@linux-node3 mnt]# echo “77777” > test/test1

        [root@linux-node3 mnt]# echo “6666” >> test/test2

        [root@linux-node3 mnt]# touch test/aaaa

        [root@linux-node3 mnt]# ls test/

        aaa aaaa test1 test2 test3

        執(zhí)行第二次的增量備份

        [root@linux-node3 mnt]# tar -g snapshot -zcf backup_incremental_2.tar.gz test

        [root@linux-node3 mnt]# ls

        aaa backup_full.tar.gz backup_incremental_2.tar.gz backup_incremental_1.tar.gz snapshot test

        [root@linux-node3 mnt]# cat snapshot

        GNU tar-1.23-2

        149017272274896944014901724572030064696476940641test/aaa014901726931200065246476940639testDaaaYaaaaYtest1Ytest2Ntest3

        現(xiàn)在進(jìn)行測(cè)試,刪除測(cè)試數(shù)據(jù)test

        [root@linux-node3 mnt]# rm -rf test/

        [root@linux-node3 mnt]# ls

        aaa backup_full.tar.gz backup_incremental_2.tar.gz backup_incremental_1.tar.gz snapshot

        開始進(jìn)行數(shù)據(jù)還原

        恢復(fù)第一次全備份的數(shù)據(jù)

        [root@linux-node3 mnt]# tar zxf backup_full.tar.gz

        [root@linux-node3 mnt]# ls

        aaa backup_full.tar.gz backup_incremental_2.tar.gz backup_incremental_1.tar.gz snapshot test

        [root@linux-node3 mnt]# ls test/

        aaa test1 test2

        [root@linux-node3 mnt]# cat test/test1

        123

        恢復(fù)第一次增量備份的數(shù)據(jù)

        [root@linux-node3 mnt]# tar zxf backup_incremental_1.tar.gz

        [root@linux-node3 mnt]# ls test/

        aaa test1 test2 test3

        [root@linux-node3 mnt]# cat test/test1

        123

        aaaaa

        [root@linux-node3 mnt]# cat test/test3

        aaaaa11111

        恢復(fù)第二次增量備份的數(shù)據(jù)

        [root@linux-node3 mnt]# tar zxf backup_incremental_2.tar.gz

        [root@linux-node3 mnt]# ls test/

        aaa aaaa test1 test2 test3

        [root@linux-node3 mnt]# cat test/test1

        77777

        [root@linux-node3 mnt]# cat test/test2

        123123

        6666

        最后可以結(jié)合crontab實(shí)現(xiàn)定時(shí)增量備份

        第一次手動(dòng)進(jìn)行全備份,生成snapshot時(shí)間戳文件,后面寫增量備份腳本

        [root@linux-node3 ~]# vim backup_incremental.sh

        #!/bin/bash

        DATE=`date +%Y%m%d%H%M%S`

        /bin/tar -g /mnt/snapshot -zcf /mnt/backup_incremental_$DATE.tar.gz /mnt/test

        進(jìn)行定時(shí)增量備份操作

        [root@linux-node3 ~]# crontab -e

        每小時(shí)進(jìn)行一次增量備份

        0 * * * * /bin/bash -x /root/backup_incremental.sh > /dev/null 2>&1

        從上面可以看出:

        snapshot作為時(shí)間戳文件,它記錄備份目錄里面每個(gè)文件的一個(gè)當(dāng)前修改時(shí)間,只要下次備份時(shí)候,再利用-g ~/snapshot指定上次生成的時(shí)間戳文件就可以實(shí)現(xiàn)增量備份!

        可能出現(xiàn)下面兩種問題:

        –> snapshot時(shí)間戳文件是每次增量備份完成時(shí)候更新的,如果在兩次備份間隔間,由于io問題,上次備份沒完成,第二次增量備份就開始的話,

        就有可能出現(xiàn),第二次增量備份并不是一個(gè)備份間隔有修改過的文件,而是兩次;如果IO問題一直存在,就會(huì)一直累積備份,最后系統(tǒng)超負(fù)載,性能變得極差

        –> 上次備份失敗(意外終止)

        這樣的情況,要看是在什么時(shí)候終止,因?yàn)閠ar命令在增量備份時(shí)候會(huì)先掃一遍文件,比較修改時(shí)間,因此,有可能備份進(jìn)程意外終止后,導(dǎo)致時(shí)間戳文件清空,下次增量備份就變成全備了,嚴(yán)重影響備份策略!

        b)第二種方式:tar -g tarinfo增量備份方法

        只需要指定-g參數(shù),tarinfo文件則是用來記錄備份的一些信息

        1)創(chuàng)建備份測(cè)試目錄wang

        [root@zabbix-server opt]# pwd

        /opt

        [root@zabbix-server opt]# echo “1111” > wang/1.txt

        [root@zabbix-server opt]# echo “2222” > wang/2.txt

        [root@zabbix-server opt]# echo “3333” > wang/3.txtwang

        [root@zabbix-server opt]# ls wang/

        1.txt 2.txt 3.txt

        2)進(jìn)行完整備份

        [root@zabbix-server opt]# tar -g tarinfo -czf backup-full.tar.gz wang/

        [root@zabbix-server opt]# ls

        backup-full.tar.gz tarinfo wang

        3)新增文件

        [root@zabbix-server opt]# echo “4444” > wang/4.txt

        [root@zabbix-server opt]# echo “12121” >> wang/1.txt

        4)進(jìn)行增量備份

        [root@zabbix-server opt]# tar -g tarinfo -czf backup-incre1.tar.gz wang/

        [root@zabbix-server opt]# ls

        backup-full.tar.gz backup-incre1.tar.gz tarinfo wang

        [root@zabbix-server opt]# cat tarinfo

        GNU tar-1.23-2

        1508989798794775692015089897819623314720538519682wangY1.txtN2.txtN3.txtY4.txt

        5)刪除wang目錄,進(jìn)行恢復(fù)(先全量恢復(fù),再增量恢復(fù))

        [root@zabbix-server opt]# rm -rf wang

        [root@zabbix-server opt]# ls

        backup-full.tar.gz backup-incre1.tar.gz tarinfo

        [root@zabbix-server opt]# tar -zvxf backup-full.tar.gz

        wang/

        wang/1.txt

        wang/2.txt

        wang/3.txt

        [root@zabbix-server opt]# ls wang/

        1.txt 2.txt 3.txt

        [root@zabbix-server opt]# cat wang/1.txt

        1111

        [root@zabbix-server opt]# tar -zvxf backup-incre1.tar.gz

        wang/

        wang/1.txt

        wang/4.txt

        [root@zabbix-server opt]# ls wang/

        1.txt 2.txt 3.txt 4.txt

        [root@zabbix-server opt]# cat wang/1.txt

        c)第三種方式:

        還是覺得tar -g snapshot最大的問題就是不可控,而且穩(wěn)定性較差,出現(xiàn)備份重疊時(shí)候很難處理好。

        因此,可以利用find+tar來做增量備份的想法。利用find命令找出最近修改的文件名列表,然后再利用tar打包

        實(shí)例如下:

        [root@linux-node3 ~]# ls /mnt/

        test

        [root@linux-node3 ~]# ls /mnt/test/

        aaa aaaa test1 test2 test3

        備份/mnt/test目錄下30分鐘以內(nèi)修改的文件

        先使用find命令列出最近有修改的文件名列表,保存到文件

        [root@linux-node3 ~]# find /mnt/test -mmin -30 -type f >> /mnt/listfile

        [root@linux-node3 ~]# ls /mnt/

        listfile test

        [root@linux-node3 ~]# cat /mnt/listfile

        /mnt/test/test2

        /mnt/test/aaaa

        /mnt/test/test1

        然后使用tar命令對(duì)文件列表列出的文件名進(jìn)行打包備份

        [root@linux-node3 ~]# tar -zcf test.tgz -T /mnt/listfile

        tar: Removing leading `/’ from member names

        [root@linux-node3 ~]# ls /mnt

        listfile test.tgz test

        同理備份/mnt/test目錄下1天之內(nèi)修改的數(shù)據(jù)

        [root@linux-node3 ~]# find /mnt/test -mtime -1 -type f >> /mnt/listfile2

        [root@linux-node3 ~]# tar -zcf test2.tgz -T /mnt/listfile2

        這樣恢復(fù)的時(shí)候,需要恢復(fù)到哪個(gè)階段的數(shù)據(jù),就利用這個(gè)階段備份的打包文件進(jìn)行恢復(fù)即可!

        這種方式來做增量備份,即使某個(gè)時(shí)間段機(jī)器性能很差,備份重疊,也不會(huì)影響到各自的備份進(jìn)程。

        此外,find命令生成的文件list,還可以方便以后查檔,直接對(duì)list搜索指定文件,不用去tar查看。

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 精品国产污污免费网站| 国产精品高清在线观看| 久久精品国产秦先生| 亚洲av午夜国产精品无码中文字 | 欧美国产日本精品一区二区三区| 亚洲第一区精品日韩在线播放| 97精品国产97久久久久久免费| 国产精品熟女一区二区| 亚洲欧美日韩国产精品影院 | 国产精品性爱| 午夜成人精品福利网站在线观看 | 国产精品性爱| 秋霞久久国产精品电影院| 99久久久精品| 国产精品99久久免费观看| 无码人妻精品一区二区三区66 | 精品无码一区在线观看| 中文字幕日韩精品有码视频| 久久99精品久久久久久不卡| 国产精品 日韩欧美| 亚洲精品天天影视综合网| 精品人妻一区二区三区毛片 | 国产精品国产三级在线专区| 99国产欧美精品久久久蜜芽| 精品人妻中文av一区二区三区| 亚洲精品国精品久久99热一| 国产精品亚洲片在线| 亚洲国产精品一区二区成人片国内| 久久精品国产亚洲av瑜伽| 国产欧美日韩精品专区| 国产精品成人无码久久久久久 | 日韩一级精品视频在线观看| 国产在线拍揄自揄视精品不卡| av国内精品久久久久影院| AV无码精品一区二区三区| 国产精品福利一区二区| 久久精品国产亚洲麻豆| 91麻精品国产91久久久久| 国产精品成人99久久久久| 精品乱子伦一区二区三区| 九九热这里只有国产精品|