rsync 遠程同步

  Rsync是一款開源的快速備份工具,能夠在不一樣的主機之間鏡像同步整個目錄樹,支持增量備份,保持連接和權限,適用於異地備份,鏡像服務器等應用。html

113951109.png

--------爲提升系統的安全性能夠爲備份創建專門用戶----apache

rpm -q rsync安全

useradd rgetbash

passwd rget服務器

useradd rputssh

passwd rputide

----調整被備份目錄的恰當權限-----工具

chown -R rput:rput /var/www/html/測試

setfacl -R -m user:apache:rwx html/uploadui

getfacl html/upload/

setfacl -m default:user:apache:rwx html/upload

setfacl -R -b /var/www/html

setfacl -R -x user:apache /var/www/html/upload

-------新建並配置rsync程序使其能夠工做------

vi /etc/rsyncd.conf

uid = root

gid = root

use chroot = yes

address = 192.168.80.33                     監聽地址

port 873

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

hosts allow = 192.168.80.0/24               容許訪問的客戶機地址

[wwwroot]

   path = /opt/test/

   comment = Document Root of www1.benet.com

   read only = no

   dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z

   auth users = back

   secrets file = /etc/rsyncd_users.db

----創建虛擬用戶配置文件並設置恰當的權限-----

vi /etc/rsyncd_users.db

back:abc123

chmod 600 /etc/rsyncd_users.db

----啓動、關閉rsync程序---

rsync --daemon

netstat -anpt | grep rsync

killall -3 rsync

---使用xinetd管理rsync程序----

yum -y install xinetd

vi /etc/xinetd.d/rsync

service rsync

{

       disable = no

----使用rsync備份時不須要交互----

export RSYNC_PASSWORD=abc123

---使用ssh備份時不須要交互---

ssh-keygen -t rsa                           建立密鑰對

ssh-copy-id root@192.168.80.33              將公鑰分發給服務器

ssh root@192.168.80.33                      無密碼自動登陸

----使用rsync下載、上傳-----

rsync -avz  --delete back@192.168.80.33::wwwroot  /media //下載

rsync -rlvz  --delete /media/ back@192.168.80.33::wwwroot //上傳

-----使用SSH下載、上傳-----

rsync -avz root@192.168.80.33:/tmp/ /opt

rsync -rlvz /opt/ root@192.168.80.33:/tmp/

-------配合inotify觸發備份、調整內核參數----

vi /etc/sysctl.conf

fs.inotify.max_queued_events = 16384

fs.inotify.max_user_instances = 1024

fs.inotify.max_user_watches = 1048576

sysctl -p

----編譯安裝inotify----

./configure

make && make install

-----測試監控效果------

inotifywait -mrq -e modify,create,move,delete /opt/test/

---經過角本完成觸發備份任務-----

vi /opt/inotify_rsync.sh

#!/bin/bash

INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /opt/test/"

RSYNC_CMD="rsync -azH --delete /opt/test/ root@192.168.80.33:/opt/back/"

$INOTIFY_CMD | while read DIRECTORY EVENT FILE

do

   if [ $(pgrep rsync | wc -l) -le 5 ] ; then

       $RSYNC_CMD

   fi

done

相關文章
相關標籤/搜索