1、前言linux
一、rsync原理及rsync+inotify觸發同步數據庫
能夠配置SSH信任,作信任後,同步就不須要密碼文件了
vim
http://nmshuishui.blog.51cto.com/1850554/1387048windows
二、本篇說明 bash
爲了保證數據的絕對可靠性:服務器
首先,全部的服務器的數據都用腳本打包備份在本地一份,如上篇博客
tcp
其次,單獨拿出一臺pc機作備份機,爲rsync客戶端,天天定時卻拉取各rsync服務器備份好的數據包
ide
再次,使用rsync同步 linux 及 windows 服務器
svn
三、服務器說明 測試
rsync服務器:192.168.200.16,192.168.200.18
rsync客戶端:192.168.1.186
這三臺服務器都是linux,rsync同步windows服務器到linux服務器在第四條
2、部署rsync服務端
一、 禪道服務器(192.168.200.16)
(1)安裝超級守護進程
#yum –y install xinetd
(2)爲rsync服務提供配置文件
#vim /etc/rsyncd.conf
#Global Settings uid = nobody gid = nobody use chroot = no max connections = 5 timeout = 600 pid file = /var/run/rsyncd.pid lockfile = /var/run/rsyncd.lock log file = /var/log/rsyncd.log #module [chandao] path = /opt/backup/ ignore errors = yes read only = no write only = no hosts allow = * hosts deny = * list = yes uid = root gid = root auth users = dianyi secrets file = /etc/chandao.passwd
(3)配置rsync認證文件/etc/chandao.passwd
[root@chandao ~]#echo 「dianyi:dianyi」 > /etc/chandao.passwd [root@chandao ~]#cat /etc/chandao.passwd dianyi:dianyi
(4)修改/etc/chandao.passwd的權限爲600
[root@chandao ~]#chmod 600 /etc/chandao.passwd [root@chandao ~]# ll /etc/chandao.passwd -rw------- 1 root root 14 Jul 29 18:18 /etc/chandao.passwd
(5)配置服務啓動
[root@chandao ~]# chkconfig rsync on [root@chandao ~]# service xinetd start
(6)檢查873端口是否成功監聽
[root@chandao ~]# ss -antlp | grep 873
(7)檢查rsync運行狀態
[root@chandao ~]# chkconfig --list
二、禪道數據庫服務器(192.168.200.18)
(1)安裝超級守護進程
#yum –y install xinetd
(2)爲rsync服務提供配置文件
#vim /etc/rsyncd.conf
#Global Settings uid = nobody gid = nobody use chroot = no max connections = 5 timeout = 600 pid file = /var/run/rsyncd.pid lockfile = /var/run/rsyncd.lock log file = /var/log/rsyncd.log #module [db_chandao] path = /opt/backup/ ignore errors = yes read only = no write only = no hosts allow = * hosts deny = * list = yes uid = root gid = root auth users = dianyi secrets file = /etc/db_chandao.passwd
(3)配置rsync認證文件/etc/db_chandao.passwd
[root@DBSlave ~]#echo 「dianyi:dianyi」 > /etc/db_chandao.passwd [root@DBSlave ~]#cat /etc/db_chandao.passwd dianyi:dianyi
(4)修改/etc/db_chandao.passwd 的權限爲600
[root@DBSlave ~]#chmod 600 /etc/db_chandao.passwd [root@DBSlave ~]# ll /etc/db_chandao.passwd -rw------- 1 root root 14 Jul 29 18:18 /etc/db_chandao.passwd
(5)配置服務啓動
[root@DBSlave ~]# chkconfig rsync on [root@DBSlave ~]# service xinetd start
(6)檢查873端口是否成功監聽
[root@DBSlave ~]# ss -antlp | grep 873
(7)檢查rsync運行狀態
[root@DBSlave ~]# chkconfig --list
3、部署rsync客戶端(192.168.1.186)
一、設置rsync客戶端的密碼文件
(1)禪道的密碼文件
[root@backup ~]#echo dianyi > /etc/chandao.passwd [root@backup ~]# cat /etc/chandao.passwd dianyi
(2)禪道數據庫的密碼文件
[root@backup ~]#echo dianyi > /etc/db_chandao.passwd [root@backup ~]# cat /etc/db_chandao.passwd dianyi
二、修改密碼文件的的權限爲600
[root@backup ~]# chmod 600 /etc/chandao.passwd [root@backup ~]# chmod 600 /etc/db_chandao.passwd [root@backup ~]# ll /etc/chandao.passwd /etc/db_chandao.passwd -rw------- 1 root root 7 Jul 29 17:17 /etc/chandao.passwd -rw------- 1 root root 7 Jul 29 16:19 /etc/db_chandao.passwd
三、測試rsync客戶端是否能夠從rsync服務器拉成功
[root@backup ~]# rsync -vzrtopg --password-file=/etc/chandao.passwd dianyi@192.168.200.16::chandao/* /tmp
四、rsync同步腳本
#!/bin/bash #func:rsync for chandao #Date:first write on 2014.7.29 #Version:v1.0 ntpdate 192.168.200.16 > /dev/null 2>&1 date=`date +%Y-%m-%d` dest_chandao=/opt/backup/chandao/zentao dest_db=/opt/backup/chandao/db_chandao remote_chandao=192.168.200.16 remote_db=192.168.200.18 module_chandao=chandao module_db=db_chandao user1=13910892224@139.com user2=15048088251@139.com main(){ rsync -vzrtopg --password-file=/etc/chandao.passwd dianyi@$remote_chandao::$module_chandao/*$date* $dest_chandao if [ $? -eq 0 ];then echo "chandao-*$date* was rsynced" >> /opt/log/chandao_rsync.log 2>&1; else echo "chandao-*$date* was not rsynced" >> /opt/log/chandao_rsync.log 2>&1; echo "Chandao rsync was faild " | mail -s "chandao backup" $user2; fi rsync -vzrtopg --password-file=/etc/db_chandao.passwd dianyi@$remote_db::$module_db/*$date* $dest_db if [ $? -eq 0 ];then echo "db_chandao_*$date* was rsynced" >> /opt/log/chandao_rsync.log 2>&1; else echo "db_chandao_*$date* was not rsynced" >> /opt/log/chandao_rsync.log 2>&1; echo "db_chandao rsync was faild " | mail -s "chandao backup" $user2; fi } main
4、定時任務
[root@backup ~]# crontab -e ##rsync for chandao 20 09 * * * /bin/sh /opt/scripts/rs_chandao.sh
5、同步windows數據到linux備份機上
主體思想仍是和linux保持一致的
rsync服務器須要配置2個方面:(1)配置文件 (2)密碼文件
接下來就是rsync客戶端配置: (1)密碼文件 (2)權限設爲600
一、下載cwrsync server
安裝時,設置的用戶和密碼均爲dianyi,即兩臺機器使用rsync相互通訊時會使用到的用戶名和密碼
二、在這臺windows上配置rsync服務器,遠程linux作爲rsync的客戶端來拉取windows服務器上的文件
(1)修改配置文件
在C:\Program Files (x86)\ICW\rsyncd.conf 添加模塊
use chroot = false strict modes = false hosts allow = * log file = rsyncd.log # Module definitions # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work # [svn] path = /cygdrive/e/Repositories #e表明e盤 ignore errors = yes read only = no transfer logging = yes write only = no hosts allow = * hosts deny = * list = yes uid = 0 #這裏的udi和gid再也不是root或是nobody,而應該是0,若是不填會報會報:@ERROR: invalid uid nobody gid = 0 auth users = dianyi secrets file = etc/svn.passwd
(2)建立密碼文件
在C:\Program Files (x86)\ICW\etc中建立密碼文件svn.passwd
內容爲 dianyi:dianyi
(3)啓動rsync服務
運行 --> services.msc --> RsyncServer 啓動類型:自動
(4)查看873端口是否監聽成功
運行 --> cmd --> netstat -ano
(5)在防火牆中開放tcp 873端口
三、配置rsync客戶端(remote linux:192.168.1.186)
(1)建立密碼認證文件
vim /etc/svn.passwd dianyi
(2)設置權限
chmod 600 /etc/svn.passwd
(3)測試
# rsync -vzrtopg --password-file=/etc/svn.passwd dianyi@192.168.1.64::svn/* /opt/111/
上面這個命令行中-vzrtopg裏的v是verbose,z是壓縮,r是recursive,topg都是保持文件原有屬性如屬主、時間的參數
五、把命令添加到腳本