備份是寫**的人必不可少的一項工作,傳統的備份,一般就是copy所有資料到乙個地方,然後貼上標籤,表示是什麼時候備份的,這種備份被稱之為「整體備份」。
如果經常進行整體備份,對磁碟的空間占用需求就很大,尤其當你備份大容量的資料的時候,有時候,比如乙個星期,只對其中一小部分的內容進行了修改,但是還是需要全部重新備份一次,很顯然,太浪費磁碟空間了;此時增量備份就派上用場了,增量備份,又叫做差異備份,意如其名,只備份修改過的部分。
好了,廢話說完了,來看看如何實際操作,我們用到的軟體是大名鼎鼎的 rsync,很多**的映象就是用它來完成的。
******************************====
環境介紹:
******************************====
備份伺服器: 192.168.10.3
需要備份的目錄:/var/www
備份時驗證使用者名稱和密碼: backup/secret
備份客戶機(備份資料存放地):192.168.10.4
客戶機和伺服器均需安裝 rsync 軟體包
***********************************
伺服器端配置:
***********************************
1、安裝
使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
若採用採用原始碼包安裝,就是經典的編譯三步曲
2、建立主配置檔案
# vi /etc/rsyncd.conf
## file of /etc/rsyncd.conf
motd file=/var/rsync/welcome.msg
pid file = /var/rsync/rsyncd.pid
lock file = /var/rsync/rsync.lock
log file = /var/rsync/rsyncd.log
### 需要備份的模組
[www]
# 模組名後面會用到
comment = bbs
path = /var/www/
use chroot = no
max connections = 4
read only = yes
list = false
uid = nobody
gid = nobody
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.10.4
hosts deny = 0.0.0.0/0
ignore errors = yes
transfer logging = yes
log format = "%a %f %l"
auth users = backup
上面定義了1個備份點,只允許 192.168.10.4 連線,需要驗證的使用者名為 backup
然後建立密碼檔案,每一行格式為: 使用者名稱:密碼,都是明文的
# vi /etc/rsyncd.secrets
backup:123456
# chmod 600 /etc/rsyncd.secrets
建立日誌或執行目錄
# mkdir /var/rsync
3、啟動服務
# rsync --daemon
rsync服務的監聽由xinet來統一分配
service rsync
重啟xinetd以啟動rsync服務
# service xinetd restart
5、檢查rsync時候啟動
# ps -ef | grep rsync
6、停止服務
# kill `cat /var/rsync/rsyncd.pid`
********************
客戶端的配置
********************
(1)主伺服器向備份伺服器備份
# rsync -vzrtopg --delete --progress [email protected]::www /back
(2)備份伺服器的恢復(主伺服器read only = no)
# rsync -vzrtopg --delete --progress /back [email protected]::www
(3)增量備份(主要用這個)
備份要求: 所有的資料統一放到乙個根目錄下,主備份用每個備份點名字命名,增量備份目錄為 increment,每個備份點的增量備份資料,全部放到這個目錄下面,目錄為當前日期,格式為 2007-08-11_11-22
檔案目錄樹如下:
/var/backup/ 備份根目錄
|---www/ 備份點1的主目錄,這個目錄裡面的資料是備份完成後最新的
|---increment/ 增量備份根目錄
|--- www/ 備份點1的差異/修改備份資料
|--- 2009-12-04_10-22 從最開始備份到08月11日10點22分,所修改的資料
|--- 2009-12-05_11-22 從10點22分到11點22分,所修改過的資料
準備工作:
建立備份根目錄: mkdir /var/backup,其他的目錄備份時會自動被建立
使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具
# echo "secret" > /etc/rsyncd.conf
注意,這裡不同於server端,這裡只寫密碼即可
# chmod 600 /etc/rsyncd.conf
客戶端基本不用配置什麼檔案。乙個指令碼就ok了。
# vi /etc/rc.d/init.d/rsync.sh
#!/bin/bash
unset verb progress
for i in $*; do
[ "$i" = "verb" ] && verb=v
[ "$i" = "progress" ] && progress="--progress"
done
rsync_server=192.168.10.3 #rsync server ip
auth_user=backup
bakroot=/var/backup/
inc_dir=increment
now=`date +%y-%m-%d_%h:%m`
[ ! -e $bakroot ] && mkdir -p $bakroot
passwd_file=/etc/rsyncd.conf
passwd_perm=`ls -l $passwd_file|awk ''`
if [ "$passwd_perm" != "-rw-------" ]; then
echo -e "\nwarning: permission of passwd file changed to 0600 \n";
chmod 0600 $passwd_file
filogfile=/var/log/rsync/rsyncbak.log
excludes=/var/log/rsync/exclude_file
[ ! -e $excludes ] && touch $excludes
backup_modules="www" #如需備份多個目錄,在「」內新增server端的模組名,用空格隔開
options="--force --ignore-errors --delete --delete-excluded \
--exclude-from=$excludes $progress \
--password-file=$passwd_file --backup"
rm -f /var/log/rsync/log.*
log_id=0
for bakdir in $backup_modules; do
log_id=`expr $log_id + 1`
subopts="--backup-dir=$bakroot/$inc_dir/$backup_modules/$now -az$"
rsync $options $subopts $auth_user@$rsync_server::$bakdir \
$bakroot/$bakdir | tee /var/log/rsync/log.$log_id
done
### 合併臨時日誌到備份日誌中
cat /var/log/rsync/log.* >> $logfile
rm -f /var/log/rsync/log.*
##### end of rsync.sh
# chmod a+x /etc/rc.d/init.d/rsync.sh
開始備份
# /etc/rc.d/init.d/rsync.sh verb progress
備份時,會自動從密碼檔案讀取密碼進行驗證,備份的詳細資訊及進度會在當前終端輸出,同時也記錄到 backup.log 檔案中。
兩次備份後,如果資料在這段時間內有改動,會產生差異備份資料,用當前時間命名,便於以後查詢
如果有些資料你不想備份,可以加入到 exclude_file 檔案中,每條記錄佔一行,支援萬用字元,比如
/tmp ## 排除名為 tmp 的根目錄
.[a-z]* ## 不備份以點開頭的隱藏檔案
(4)任務計畫
# crontab -e
0 2 * * * /etc/rc.d/init.d/rsync.sh
每天早上2點備份
rsync增量備份
增量備份 原始檔同步到備份目錄 同時備份更改的檔案且記錄下同步輸出檔案日誌 bin bash riqi date y m d h m srcdatapath newdata destdatapath newdata backup backupdir newdata backup chfileback...
增量備份 差異備份 增量備份的區別?
特點 占用空間大,備份速度慢,但恢復時一次恢復到位,恢復速度快。相當於機械人把地板打掃乾淨了,你踩過,就會有腳印 增加標記 下次機械人就把腳 印記錄下來,並且把腳印打掃乾淨 清除標記 始終保持地板乾淨。機械人每次記錄並打 掃的腳印就相當於每次增量備份的內容 以備份體積小,備份速度快,但是恢復的時候,...
差異備份與增量備份
差異備份的定義 備份自上一次完全備份之後有變化的資料。增量備份的定義 備份自上一次備份 包含完全備份 差異備份 增量備份 之後有變化的資料。增量備份和差異備份的區別 完全備份 備份全部選中的資料夾,並不依賴檔案的存檔屬性來確定備份那些檔案。在備份過程中,任何現有的標記都被清除,每個檔案都被標記為已備...