Linux檔案同步:主要使用rsync與crontab結合的方式同步
主機IP:172.22.3.181
備機IP:172.22.3.182
配置操作步驟:
一.安裝rsync
二.配置rsyncd.conf 與密碼檔案(兩個步驟1和2)
三.備份腳本
一.安裝rsync
備機
1.伺服器是否安裝rsync
rpm -qa|grep –i rsync
若有顯示,說明已安裝,則跳過2
2.安裝rsync軟體
有兩種安裝方式:
a.利用 yum 安裝
1. yum install rsync xinetd
b.源碼安裝
下載下傳源碼自己編譯
1. cd rsync-3.0.9
2. ./configure
3. make && make install
二.配置rsyncd.conf 與密碼檔案(兩個步驟(1)和(2))
(1)安裝完rsync 服務,這個檔案預設是沒有的需要自己手動建立一個。
vi /etc/rsyncd.conf #主要全局參數
uid = root
gid = root
use chroot = yes #為了安全考慮,讓rsync運作于chroot環境
log file = /var/log/rsyncd.log #rsync的日志檔案
pid file = /var/run/rsyncd.pid #rsync的pid檔案
[picData]
comment = backup for picServer
path = /opt/
read only = no
auth users = root
secrets file = /etc/rsync.pass
hosts allow = 172.22.3.181,127.0.0.1
:wq!
配置密碼檔案rsync.pass
1. vi /etc/rsync.pass
2. root:123456
格式:使用者名:密碼(使用者名必須系統真是存在的使用者,密碼最好不要個系統密碼一緻)
修改rsync.pass 和rsyncd.conf權限
這個兩個檔案必須是600 不然服務不讀
1. chmod 600 /etc/rsync.pass
2. chmod 600 /etc/rsyncd.conf
開啟防火牆tcp873端口
1. vi /etc/sysconfig/iptables
2. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
3. :wq
啟動rsync服務
啟動服務有兩種方式:
a.使用rsync的–daemon選項啟動,rsync服務預設使用873号端口
啟動:/usr/bin/rsync--daemon --config=/etc/rsyncd.conf
關閉:pkillrsync
lsof –i:873 (檢查服務是否啟動)
b.xinetd守護
修改/etc/xinetd.d/rsync檔案,把
disable = yes
改成
disable = no
然後重新開機xinetd即可,
/etc/init.d/xinetd restart
服務
service xinetd start #啟動
service xinetd stop #停止
service xinetd restart #重新啟動
如果你的xinetd開機并沒自動啟動的話,需要執行
chkconfig xinetd on
到此rsync服務已經配置完成
主機:
1.配置密碼檔案rsync.pass
2. 123456
這個裡面隻配置密碼
修改檔案的權限600
2.執行指令
/usr/bin/rsync -vzrtopg--password-file=/etc/rsync.pass /etc/rsync.pass [email protected]::picData
執行成功
(2)配置密碼檔案來達到不輸入密碼的目的
在配置伺服器之前要先生成密鑰,ssh-keygen -t rsa,生成密鑰如下:
[root@masternagios .ssh]# ls
id_rsa id_rsa.pub
[root@masternagios .ssh]# scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
在用戶端也要如下操作:
[root@masternagios .ssh]# ssh-keygen -t rsa
id_rsa id_rsa.pub authorized_keys(3.181的公鑰)
scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
這樣兩台機可以無密碼SSH登陸,以便後面我們同步友善;當然,不要上述的操作也能實作;那麼如下操作:
服務端:vi /etc/sery.pass 權限:600(chmod 600 /etc/sery.pass)
root:123456
客服端:
vi/etc/sery_client.pass 權限:600(chmod 600 /etc/sery_client.pass)
123456
生成的這兩件檔案後面有用處的;
主機:
然後建立配置檔案vi /etc/rsyncd.conf,内容如下圖示:
解析如下:
uid = root #root使用者通路(我這裡用ROOT使用者,也可以用其他建立的使用者)
gid = root #root組使用者通路
use chroot = yes #能使用chroot
max connections = 10 #最大連接配接數
list = yes #允許列出檔案清單
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
hosts allow = 172.22.3.182,172.22.2.200,127.0.0.1 #隻允許這個主機通路
[data] #釋出項(注意這個命名)
path = /webapps/IDManage #釋出的路徑
ignore errors
read only = no #隻讀
auth users = root #認證使用者為root
secrets file = /etc/sery.pass #密碼檔案
然後我們來啟動:
[root@masternagios ~]# rsync --daemon--config=/etc/rsyncd.conf
[root@masternagios ~]# ps -ef |grep rsync
root 21359 1 0 Aug24 ? 00:00:00 rsync --daemon -- config=/etc/rsyncd.conf
root 24018 23885 0 10:38 pts/0 00:00:00 grep rsync
[root@masternagios ~]#lsof -i:873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 21359 root 4u IPv4 1558266 0t0 TCP *:rsync (LISTEN)
rsync 21359 root 5u IPv61558267 0t0 TCP *:rsync (LISTEN)
然後在用戶端測試:
[root@dbserver ~]# telnet 172.22.3.181 873
Trying 172.22.3.181...
Connected to 172.22.3.181.
Escape character is '^]'.
@RSYNCD: 30.0
^]
telnet> q
Connection closed.
說明網絡端口開放,沒有問題;通常在這配置時會發現一些問題,比如報錯(111)--說明伺服器端口未開啟,就檢查一下rsync服務有沒有開啟;
報錯(1503)(1536)--說明無 [data] #釋出項(注意這個命名),這裡指令一定要對應上同步::[data];
我們再來把服務端rsync加自動啟動;
echo"/usr/bin/rsync --daemon --config=/etc/rsyncd.conf">>/etc/rc.local
配置用戶端;
用戶端隻要安裝rsync這個指令便可以實作,是以,我們來測試同步實作;
[root@dbserver ~]#rsync -aSvH /webapps/IDManage/ [email protected]::data--password-file=/etc/sery_client.pass
或者是rsync -avH --progress /cardpic/ [email protected]::picData --password-file=/etc/rsync.pass
可以看到:
指令執行成功;說明服務端與用戶端都沒有問題;
三.備份腳本
備機crontab -e
*/1 * * * * rsync -zvrtopg --delete -progress -e 'ssh -p22' [email protected]:/rstest/ /rstest/
本文轉自flayber 51CTO部落格,原文連結:http://blog.51cto.com/406647516/1727890,如需轉載請自行聯系原作者