Rsync 服務(wù)

配置 rsync 服務(wù)端 10.0.0.41/24 172.16.1.41/24 backup

1.安裝

[root@c2-10.0.0.41__backup ~]# rsync –version  《《=====查看rsync版本
rsync  version 3.1.2  protocol version 31  《《=====版本號(hào)為3.1.2
Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,

[root@c2-10.0.0.41__backup ~]# yum install rsync
如果沒有可以下載    

2.創(chuàng)建虛擬用戶

useradd -s /sbin/nologin -M rsync

3.創(chuàng)建對(duì)應(yīng)目錄(/backup) 并授權(quán)用戶為rsync用戶來管理rsync服務(wù)

mkdir –p /server/scripts  《《《《====腳本文件存放路徑
mkdir –p /backup
chown -R rsync.rsync /backup

4.配置對(duì)應(yīng)密碼文件并授權(quán)600

echo “rsync_backup:oldboy”  >/etc/rsync.password
[root@backup ~]# chmod 600  /etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy
[root@backup ~]# ls -l /etc/rsync.password
-rw------- 1 root root 20 4月  15 11:51 /etc/rsync.password

5.配置文件/etc/rsyncd.conf

[root@c2-10.0.041__backup ~]# cp /etc/rsyncd.conf {,.ori}  《《====操作前先備份

cat >/etc/rsyncd.conf<<EOF
#rsync_config_______________start
#created by oldboy
#site: http://www.oldboyedu.com
uid = rsync                                      《《《《=====管理備份目錄的用戶
gid = rsync                                      《《《《====管理備份目錄的用戶組
use chroot = no                                  《《《《====安全功能,數(shù)據(jù)是否鎖定到備份目錄
fake super =  yes                                《《====不需要root也可以存儲(chǔ)文件的完整屬性
max connections = 200                            《《《《===并發(fā)連接,同時(shí)多少客戶端訪問
timeout = 600                                    《《《《===超時(shí)連接
pid file = /var/run/rsyncd.pid                   《《《===進(jìn)程號(hào)所在文件
lock file = /var/run/rsync.lock                  《《《===鎖文件
log file = /var/log/rsyncd.log                   《《《===日志文件,查看報(bào)錯(cuò)
ignore errors                                    《《《《==忽略錯(cuò)誤
read only = false                                《《《《====可寫
list = false                                     《《《《《===不允許列表
hosts allow = 172.16.1.0/24                      《《《《===哪些主機(jī)可以訪問           二選一
hosts deny = 0.0.0.0/32                          《《《《===哪些主機(jī)不允許訪問
auth users = rsync_backup                        《《《《《====遠(yuǎn)程連接的虛擬用戶
secrets file = /etc/rsync.password               《《《《《====存放密碼的文件: 格式:用戶名:密碼 權(quán)限必須為600
[backup]                                         《《《《《======【模塊名】
comment = welcome to oldboyedu backup!           《《《《《===== 說明注釋
path = /backup/                                  《《《《《《====服務(wù)端用戶備份的目錄, 用戶和組為rsync 因?yàn)?uid  gid 都是rsync
EOF

6.啟動(dòng)和檢查rsync服務(wù)的狀態(tài)

rsync --daemon C6
systemctl  start rsyncd  現(xiàn)在啟動(dòng)
systemctl status rsyncd  查看是否開啟
systemctl enable rsyncd  設(shè)置開機(jī)自啟動(dòng)
ps-ef|grep sync|grep -v grep
netstat -lutup|grep  873
rsync 的默認(rèn)端口為873

###################### rsync服務(wù)器基礎(chǔ)配置完成#######################

配置 客戶端 10.0.0.n/24 172.16.1.n/24

1.安裝

[root@c2-10.0.041__backup ~]# rsync –version  《《=====查看rsync版本
rsync  version 3.1.2  protocol version 31  《《=====版本號(hào)為3.1.2
Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,

[root@c2-10.0.041__backup ~]# yum install rsync –y
如果沒有可以下載

方法1:認(rèn)證密碼文件

[root@nfs01 ~]# echo "oldboy" > /etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password
[root@nfs01 ~]# cat /etc/rsync.password
oldboy
[root@nfs01 ~]# ls -l /etc/rsync.password
-rw------- 1 root root 7 4月  15 11:55 /etc/rsync.password

方法2: 環(huán)境變量必須是大寫 export

[root@nfs01 ~]# echo 'export RSYNC_PASSWORD=oldboy' >>/etc/bashrc 
[root@nfs01 ~]# tail -1 /etc/bashrc 
 export RSYNC_PASSWORD=oldboy
[root@nfs01 ~]# . /etc/bashrc 
[root@nfs01 ~]# echo $RSYNC_PASSWORD

Rsync 傳輸模式

1.本地傳輸方式 (單個(gè)主機(jī)本地之間的數(shù)據(jù)傳輸 類似cp命令)

local:   rsync   [OPTION...]   SRC...   [DEST]
#本地拷貝數(shù)示例
[root@backup ~] rsync  -avz  /etc/passwd    /tmp
rsync               #備份命令(等同cp)
[OPTION...]        #選項(xiàng)
SRC...            #本地源文件
[DEST]           #本地目標(biāo)文件

2.遠(yuǎn)程通道傳輸方式:通過ssh通道傳輸數(shù)據(jù),類似scp 命令

(1) #pull 拉取數(shù)據(jù)命令

Pull:rsync  [OPTION...]   [USER@]HOST:SRC...   [DEST]
#Pull  拉取數(shù)據(jù)示例
[root@backup ~] rsync   -avz  root@172.16.1.41:/etc/hostname  ./   #拉取遠(yuǎn)程文件到當(dāng)前目錄
[root@backup ~] rsync -avz root@172.16.1.41:/root/  /backup/      #拉取遠(yuǎn)程目錄下的所有文件
[root@backup ~] rsync  -avz  root@172.16.1.41:/root  /backup/    #拉取遠(yuǎn)程目錄以及目錄下的所有文件  
pull  拉取數(shù)據(jù)命令
rsync            #備份命令(等同cp)
OPTION...       #選項(xiàng)
USER@          #目標(biāo)主機(jī)的系統(tǒng)用戶
HOST          #目標(biāo)主機(jī)IP地址或者域名
SRC...       #目標(biāo)主機(jī)源文件
DEST        #下載至本地哪個(gè)位置

(2) #Push 推送命令

Push: rsync [OPTION...]  SRC...   [USER@]HOST::DEST
#push  推送數(shù)據(jù)示例
rsync  -avz   /backup/2019.txt  root@172.16.1.41:/tmp/
rsync               #備份命令(等同cp)
OPTION...          #選項(xiàng)
SRC...            #本地源文件
USER@            #目標(biāo)主機(jī)的系統(tǒng)用戶
HOST            #目標(biāo)主機(jī)IP地址或者域名
DEST           #目標(biāo)對(duì)應(yīng)位置

(3) #示例

拉取rsync備份服務(wù)器的"backup模塊"數(shù)據(jù)至本地的/tmp目錄
#rsync  -avz  rsync_backup@172.16.1.41::backup/  /tmp/  --password-file=/etc/rsync.password

將本地/tmp目錄推送至 rsync備份服務(wù)器的backup模塊
rsync  -avz /tmp  rsync_bakcup@172.16.1.41::backup/  --password-file=/etc/rsync.password

Rsync 企業(yè)備份項(xiàng)目

某公司里有一臺(tái) web 服務(wù)器,里面的數(shù)據(jù)很重要,但是如果硬盤壞了,數(shù)據(jù)
就會(huì)丟失,現(xiàn)在領(lǐng)導(dǎo)要求把數(shù)據(jù)做備份,這樣 web 服務(wù)器數(shù)據(jù)丟失可以進(jìn)行恢復(fù),
要求如下:
每天晚上 00 點(diǎn)整在 web 服務(wù)器 A 上打包備份系統(tǒng)配置文件、網(wǎng)站程序目錄
及訪問日志并通過 rsync 命令推送到服務(wù)器 B 上備份保留(備份思路可以是先在
本地按日期打包,然后再推到備份服務(wù)器 B 上)


所有服務(wù)器的備份目錄必須都為/backup
mkdir  –p  /backup
要備份的系統(tǒng)配置文件包括但不限于:
a) 定時(shí)任務(wù)服務(wù)的配置文件 (/var/spool/cron/root) (適合 web 和 nfs 服
務(wù)器)。
b) 開機(jī)自啟動(dòng)的配置文件 (/etc/rc.local) (適合 web 和 nfs 服務(wù)器)。
c) 日常腳本的目錄 (/server/scripts ( (適合 web 和 nfs 服務(wù)器)。
? Web 服務(wù)器站點(diǎn)目錄假定為/var/html/www,如果沒有可以先模擬創(chuàng)建。
? Web 服務(wù)器訪問日志路徑假定為/app/logs,如果沒有可以先模擬創(chuàng)建。
tar zcf /backup/bak.$(date +%F_%w –d “-1day”)tar.gz var/spool/cron/root  etc/rc.local  /server/scripts  var/html/www app/logs   &>/dev/null  
? Web 服務(wù)器本地保留打包后的 7 天備份數(shù)據(jù)即可(本地留存不能多于 7 天,
因?yàn)樘嘤脖P會(huì)滿)
find /backup/  -type  f  -mtime +7|xargs  rm -f

? 備份服務(wù)器 backup 上,保留最近 7 天的備份數(shù)據(jù),同時(shí)保留 6 個(gè)月內(nèi)每周一
的所有數(shù)據(jù)副本。
if  [ $(date +%w  -d  “-1day”)  -eq  2 ]
then
    DATE=”$(date +%F_%w -d  “-1day”)_week1”
else
    DATE+”$(date +%F_%w  -d  “-1day”)”
fi
find  /backup/  -type  f  -mtime +7|xargs  rm –f &&\
find  /backup/  -type  f  !   -name  “*week1*” –mtime  +180|xargs rm –f

? 備份服務(wù)器上,要按照備份數(shù)據(jù)服務(wù)器的內(nèi)網(wǎng) IP 為目錄保存?zhèn)浞?,備份的?件按照時(shí)間名字保存。
IP=`hostname  -I|awk ‘{print $2}’`
mkdir –p /backup/$IP
? 需要確保備份的數(shù)據(jù)盡量完整正確,在備份服務(wù)器上對(duì)備份的數(shù)據(jù)是否完整
進(jìn)行檢查。
在web01打包得時(shí)候就采集打包內(nèi)容得指紋
find /backup/  -type  f  -name  ‘$DATE.tar.gz’|xargs  md5sum>/backup/$IP/bak_$IP_$DATE.fail

在rsync服務(wù)器上檢查推送來得指紋
LOGPATH=/tmp/fail.log
find backup/$IP  -type f  -name  “*.fail”|xargs md5sum  -c &>/LOGPATH
每天晚上 00 點(diǎn)整在 Web 服務(wù)器上打包備份系統(tǒng)配置文件、網(wǎng)站程序目錄及
訪問日志并通過 rsync 命令推送備份服務(wù)器 backup 上備份保留

腳本編輯

#!/bin/bash
export PATH= /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
IP=`hostname  -I|awk '{print $2}'`
DATE=`date +%F_%w  -d  "-1day"`
mkdir –p /backup/$IP
if  [ $(date +%w)  -eq  2 ]
then
    DATE="$(date +%F_%w –d  -1day)_week1"
else
    DATE="$(date +%F_%w -d  -1day)"
fi
tar zcf /backup/$IP/bak.$DATE.tar.gz var/spool/cron/root  etc/rc.local  /server/scripts  var/html/www app/logs   &>/dev/null
rsync  –avz  /backup/  rsync_back@172.16.1.41::backup
find /backup/  -type  f  -mtime +7|xargs  rm -f
find  /backup/  -type  f  !   -name  "*week1*" –mtime  +180|xargs rm –f
find /backup/  -type  f  -name  "$DATE.tar.gz"|xargs md5sum>/backup/$IP/bak.$IP.$DATE.fail

Rsync 服務(wù)端 檢查指紋

find backup/$IP  -type f  -name  "*.fail"|xargs md5sum  -c &>/LOGPATH
LOGPATH=/tmp/fail.log


每天早晨8:00 把備份成功或失敗結(jié)果信息發(fā)給系統(tǒng)管理員郵箱中。

mail  –s  "$(date +%F_%T) backup data error" 17631153498@163.com </tmp/fail.log

郵箱配置文件

set from=xxxxxxx@163.com
set smtp=smtp.163.com
set smtp-auth-user=xxxxx@qq.com
set smtp-auth-password=xxxxxxxxxxx
set smtp-auth=login



放入/etc/mail.rc中
改為自己的配置 倒數(shù)第二行是授權(quán)碼  郵箱設(shè)置 

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容