1. 程式人生 > >centos rsync 配置

centos rsync 配置

rsyncd fig src 拉取 $path ech login bash pri


Rsync:

rsync 優點:
增量備份,支持socket,集中備份
缺點:
大量小文件同步的時候,比對時間較長,有的時候,rsync
進程會停止

同步大文件,10G這樣的大文件有時也會有問題
中斷,未完整同步前,是隱藏文件

rsync -avz /etc/hosts /tmp/ (相當於cp -a 命令)

rsync -avz --delete /null/ /tmp/
(null 目錄有啥,tmp目錄就有啥,2者內容是一樣的)


rsync 推到遠端 2 臺服務器都要有rsync服務,
要不然會 command not found
rsync -avzP -e ‘ssh -p 22‘ /tmp/ [email protected]

/* */:/test
(把本地的tmp目錄推到遠端的test目錄,目錄的後面的斜線要帶上)

rsync -avzp -e ‘ssh -p 22‘ [email protected]:/test/ /home/rdj/test/text/
(拉取遠端的 註意test目錄後的斜線要帶上,拷貝的是目錄裏面的內容)

-e 表示 指定使用隧道

rsync服務端:

useradd rsync -s /sbin/nologin -M

id rsync


mkdir /backup
chown -R rsync /backup
ls -ld /backup/
echo ‘rsync_backup:123456‘ >/etc/rsync.password

chmod 600 /etc/rsync.password
ll /etc/rsync.password

rsync --daemon
ps -ef|grep rsync
netstat -lntup |grep rsync
lsof -i:873

加入開機自啟動:
echo ‘rsync --daemon‘ >> /etc/rc.local
cat /etc/rc.local


cat /var/log/rsyncd.log

rsync 客戶端:
1.創建密碼文件
echo ‘123456‘ > /etc/rsync.password
chmod 600 /etc/rsync.password

2.發送文件
push: (對方要關閉873端口)
rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync -avz /home/rdj/res/ [email protected]

/* */::backup --password-file=/etc/rsync.password


推拉都是客戶端操作

無差異同步 --delete 參數 (盡量少用)

如果是推:
本地有,遠端就有,本地沒有,刪除遠端

如果是拉:
遠端有,本地就有,遠端沒有,刪除本地


awk 取得服務器IP:
ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2 {print $4}‘


定時備份腳本:

#!/bin/bash
path=/backup
dir="`ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2 {print $4}‘`_$(date +%F)"
mkdir $path/$dir -p &&\
/bin/cp /var/spool/cron/root $path/$dir/cron_root_$(date +%F) &&\
/bin/cp /etc/rc.local $path/$dir/rc.local_$(date +%F) &&\

rsync -avz $path/ [email protected]::backup --password-file=/etc/rsync.password

00 01 * * * /bin/sh /server/script/bakcup.sh > /dev/null 2>&1


#######################################

web 打包備份:
#最好配置文件,程序,日誌 分開打包

#!/bin/bash

#打包到backup

path=/backup
ip="`ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2 {print $4}‘`"


[ ! -d $path/$ip ] && mkdir $path/$ip -p


#備份配置文件
tar zcf $path/$ip/config.tar.gz /var/spool/cron/root /etc/sysconfig/iptables /server/script
#備份程序
tar zcf $path/$ip/www_$(date +%F).tar.gz /var/www/html/
#備份日誌文件
tar zcf $path/$ip/log_$(date +%F).tar.gz /app/logs/

#rsync推送
rsync -avz $path/ [email protected]::backup --password-file=/etc/rsync.password

#刪除7天以前的
find /backup -type f -name "*.tar.gz" -mtime +7|xargs rm -f

00 00 * * * /bin/sh /server/script/bak.sh > /dev/null 2>&1

centos rsync 配置