天天看點

linux 檔案同步 rsync+crontab

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的公鑰)

[[email protected]]#

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,如需轉載請自行聯系原作者

繼續閱讀