rsync 實現實時增量備份


Rsync + Crontab實現定時文件同步(首次全量+后續增量) 2015-04-14 19:02:11

原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。 http://lu2yu.blog.51cto.com/10009517/1632410

一、簡介

    在配置HA的時候,需要配置多個節點的配置,節點間的配置很多時候都是類似重復的,也許可以通過scp等手段實現,但是每次的更改都需要手動scp也顯得麻煩,這邊我們可以通過rsync的方式來實現文件的同步。

    使用rsync+crontab做定時同步時,主服務器端開啟rsync守護進程,而鏡像服務器是運行rsync客戶端,平時一般會利用crontab定時獲取rsync服務器上的數據。

 

 

二、配置

  ①rsync的服務端(文件發送出去端)

    以守護進程的形式后台運行

 

 1.rsync的安裝和文件包組成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@web1 ~] # yum install rsync
[root@web1 ~] # rpm -ql rsync 
/etc/xinetd .d /rsync          ##基於xinetd的管理
/usr/bin/rsync               ##rsync工具
/usr/share/doc/rsync-3 .0.6 
/usr/share/doc/rsync-3 .0.6 /COPYING 
/usr/share/doc/rsync-3 .0.6 /NEWS 
/usr/share/doc/rsync-3 .0.6 /OLDNEWS 
/usr/share/doc/rsync-3 .0.6 /README 
/usr/share/doc/rsync-3 .0.6 /support 
/usr/share/doc/rsync-3 .0.6 /support/Makefile 
/usr/share/doc/rsync-3 .0.6 /support/atomic-rsync 
/usr/share/doc/rsync-3 .0.6 /support/cvs2includes 
/usr/share/doc/rsync-3 .0.6 /support/deny-rsync 
/usr/share/doc/rsync-3 .0.6 /support/file-attr-restore 
/usr/share/doc/rsync-3 .0.6 /support/files-to-excludes 
/usr/share/doc/rsync-3 .0.6 /support/git-set-file-times 
/usr/share/doc/rsync-3 .0.6 /support/logfilter 
/usr/share/doc/rsync-3 .0.6 /support/lsh 
/usr/share/doc/rsync-3 .0.6 /support/mnt-excl 
/usr/share/doc/rsync-3 .0.6 /support/munge-symlinks 
/usr/share/doc/rsync-3 .0.6 /support/rrsync 
/usr/share/doc/rsync-3 .0.6 /support/rsyncstats 
/usr/share/doc/rsync-3 .0.6 /support/savetransfer .c 
/usr/share/doc/rsync-3 .0.6 /tech_report .tex 
/usr/share/man/man1/rsync .1.gz 
/usr/share/man/man5/rsyncd .conf.5.gz

     軟件包組成中沒有提供配置文件和相應的文件,因此需要自行添加如下:

1
2
3
4
5
[root@node1 ~] # mkdir /etc/rsyncd  ##創建配置目錄 
[root@node1 ~] # touch /etc/rsyncd/rsyncd.conf  ##創建主配置文件 
[root@node1 ~] # touch /etc/rsyncd/rsyncd.secrets  ##創建用戶密碼文件 
[root@node1 ~] # chmod 600 /etc/rsyncd/rsyncd.secrets ##修改用戶密碼文件 
[root@node1 ~] # touch /etc/rsyncd/rsyncd.motd   ##創建定義服務器信息的文件

  

2.編輯配置rsyncd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@node1 ~] # vi /etc/rsyncd/rsyncd.conf
# Minimal configuration file for rsync daemon 
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script 
pid  file  /var/run/rsyncd .pid 
port = 873    ##監聽端口 
address = 192.168.192.208   ##監聽地址 
#uid = nobody 
#gid = nobody   
uid = root 
gid = root
use chroot =  yes    ##是否限制在指定目錄,為了安裝,一般需要啟用 
read  only = no
 
#limit access to private LANs 
hosts allow=192.168.192.0 /255 .255.255.0    ##允許網段 
hosts deny=*
 
max connections = 5 
motd  file  /etc/rsyncd/rsyncd .motd
#This will give you a separate log file 
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync 
#transfer logging = yes
log  format  = %t %a %m %f %b 
syslog facility = local3 
timeout = 300
 
##定義一個同步目錄
[webdir] 
path =  /var/www/html 
list= yes 
ignore errors 
auth  users  = apache 
secrets  file  /etc/rsyncd/rsyncd .secrets   ##指定上述賬號密碼文件 
comment = web home
exclude =   data/    ##排除目錄

 

3.添加賬號密碼文件

1
2
3
[root@node1 ~] # vi /etc/rsyncd/rsyncd.secrets
apache:123456
##注意,這個賬號是系統賬號,但沒有使用系統賬號的密碼,而是自定義密碼

 

4.讓rsync以守護進程運行

1
[root@node1 ~] # /usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

 

5.開機自動啟動

1
[root@node1 ~] # echo "/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local

 

②配置rsync的客戶端

  客戶端同樣需要安裝rsync,但是只需要配置如下文件即可

1
2
3
[root@node2 ~] # mkdir /etc/rsyncd  ##創建配置目錄 
[root@node2 ~] # echo “passowd123”> /etc/rsyncd/rsyncd.password  ##創建密碼文件,密碼為服務器端rsyncd.secrets文件中的密碼。
[root@node2 ~] # chmod 600 /etc/rsyncd/rsyncd.password

 

 

 

③同步操作

1
2
3
4
5
6
7
8
9
10
11
12
[root@node2 ~] # rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@192.168.192.208::webdir /var/www/html/
 
說明:
--delete:本地與服務器完全一樣,如果本地存在不一樣的,則刪除,慎用
--password- file :指定密碼文件,如果不指定,則需手動輸入
-a :參數,相當於-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件; 
-z :傳輸時壓縮; 
-P :傳輸進度; 
- v  :傳輸時的進度等信息
apache@192.168.192.208::webdir  用雙冒號引用主配置文件中的定義資源,也可以使用單引號跟絕對路徑
 
以后同步時,只會同步新增內容。

 

 

1
rsync  -avzP --delete  --password- file = /etc/rsyncd/rsyncd .password apache@192.168.192.208::webdir


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM