全網伺服器資料備份方案(模擬生產環境容災同步)+郵件告警

天府雲創發表於2018-08-23

專案需求:

每天晚上00點整在web伺服器上打包備份系統配置檔案,網站程式目錄及訪問日誌通過rsync命令推送備份伺服器backup上備份保留。(100臺的web伺服器資料備份喲~備份思路可以是先在本地按日期打包,然後再推到備份伺服器backup上),NFS儲存伺服器同Web伺服器,實際工作中就是全部的伺服器)

具體要求如下:

1)所有伺服器的備份目錄必須都為/backup。

2)要備份的系統配置檔案包括但不限於:

            a.定時任務服務的配置檔案(/var/spool/cron/root)(適合web和nfs伺服器)。

             b.開機自啟動的配置檔案(/etc/rc.local)(適合web和nfs伺服器)。

             c.日常指令碼的目錄 (/server/scripts)(適合web和nfs伺服器)。

             d.防火牆iptables的配置檔案(/etc/sysconfig/iptables)。

             e.自己思考下還有什麼需要備份呢?

3)Web伺服器站點目錄假定為(/var/html/www)。

4)Web伺服器A訪問日誌路徑假定為(/app/logs)

5)Web伺服器保留打包後的7天的備份資料即可(本地留存不能多於7天,因為太多硬碟會滿)

6)備份伺服器上,保留每週一的所有資料副本,保留最近7天的備份資料,同時其它要保留6個月的資料副本。(180天網監要求)

7)備份伺服器上要按照備份資料伺服器的內網IP為目錄儲存備份,備份的檔案按照時間名字儲存。

8)需要確保備份的資料儘量完整正確,在備份伺服器上對備份的資料進行檢查,把備份的成功及失敗結果資訊發給系統管理員郵箱中:(完善的系統一定要有告警功能)

基本備份要求

  已知3臺伺服器主機名分別為:web01,backup,nfs01,主機資訊如下表:

伺服器說明

外網IP

內網IP

主機名

Nginx web伺服器

10.0.0.8/24

172.16.1.8/24

web01

NFS儲存伺服器

10.0.0.31/24

172.16.1.31/24

nfs01

rsync備份伺服器

10.0.0.41/24

172.16.1.41/24

backup

--準備好相應的機器(修改好機器名,關閉iptables,selinux,配置好yum源),並配置好相應的host解析,相同的時間(這裡上臺機子都已配置完成)

簡單邏輯圖

 解題思路

1)搭建backup伺服器。

   a.搭建rsync服務

2)搭建web伺服器。

   1.驗證rsync服務能否推送成功。

   2.開發指令碼,實現打包,備份,推送,校驗,刪除。

   3.配置定時任務定時推送,每天0點定時推送。

3)搭建backup伺服器。

1.實現校驗,刪除,報警。

2.配置定時任務每天6點定時執行。

4)搭建nfs伺服器。

   1.驗證rsync服務能否推送成功。

   2.開發指令碼,實現打包,備份,推送,校驗,刪除。

   3.配置定時任務定時推送,每天0點定時推送。

專案實施

--準備好相應的機器(修改好機器名,關閉iptables,selinux,配置好yum源),並配置好相應的host解析,相同的時間(這裡上臺機子都已配置完成)

--host 解析

[root@backup ~]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.222 web01

192.168.1.233 nfs01

192.168.1.244 backup #新增

--使用ntpdate實現時間同步

[root@nfs-01 ~]# yum install ntpdate

[root@nfs-01 ~]# vim ntpdate.sh #指令碼複製好用執行一遍讓時間一致

#!/bin/bash

ntpdate time.nist.gov

hwclock -w

[root@nfs-01 nfs-01 ~]# crontab -e

* * * * 1 /root/time.sh #每週同步一次

1、搭建rsync服務端(blackup伺服器)

1.1.安裝rsync

[root@backup ~]# yum install rsync -y

1.2.修改/etc/xinetd.d/rsync

[root@backup ~]# vim /etc/xinetd.d/rsync

1.3.配置/etc/rsyncd.conf(需要手動生成)

[root@backup ~]# vim /etc/rsyncd.conf

uid = rsync #rsync以什麼使用者啟動

gid = rsync #rsync 以什麼組啟動

use chroot = no

max connections = 200 #最大連線數

timeout = 300 #超時時間

pid file = /var/run/rsyncd.pid #pid檔案路徑

lock file = /var/run/rsync.lock #指定lock檔案

log file = /var/log/syncd.log #日誌檔案

[backup]

path = /backup/ #back目錄

ignore errors #忽略錯誤

read only = no #是否字元(若從客戶端同步到伺服器必須設為no)

list = no #在否允許列表

hosts allow = 192.168.1.0/24 #允許的ip端

auth users = rsync_backup #認證的使用者,伺服器必須存在這個系統使用者

secrets file = /etc/rsync.password #指定使用者密碼檔案

#以上配置檔案需去除註釋才能直接複製,否則報錯

1.4.建立使用者,及目錄

[root@backup ~]# useradd -s /sbin/nologin -M rsync

[root@blackup ~]# mkdir /backup

[root@backup ~]# chown -R rsync.rsync /backup

1.5.建立密碼檔案

[root@backup ~]# vim /etc/rsync.password

rsync_backup:123456 #虛擬使用者及密碼

[root@backup ~]# chmod 600 /etc/rsync.password #許可權必須為600

1.6.啟動,新增開機啟動

[root@backup ~]# rsync --daemon

[root@backup ~]# ss -antup|grep rsync

[root@backup ~]# echo "/usr/bin/rsync --daemon">>/etc/rc.local #開機啟動

2.1客戶端配置(nfs01)

[root@nfs-01 ~]# yum install rsync -y

[root@nfs-01 ~]# mkdir /backup/

[root@nfs-01 ~]# touch /backup/1.txt #建立個測試檔案

[root@nfs-01 ~]# echo "123456" >/etc/rsync.password #建立密碼檔案

[root@nfs-01 ~]# chmod 600 /etc/rsync.password

[root@nfs-01 ~]# rsync -avz /backup/ rsync://rsync_backup@192.168.1.244/backup --password-file=/etc/rsync.password

3.1客戶端配置(web01)

[root@web-01 ~]# yum install rsync -y

[root@web-01 ~]# mkdir /backup/

[root@web-01 ~]# touch /backup/2.txt

[root@web-01 ~]# echo "123456" >/etc/rsync.password

[root@web-01 ~]# chmod 600 /etc/rsync.password

[root@web-01 ~]# rsync -avz /backup/ rsync://rsync_backup@192.168.1.244/backup --password-file=/etc/rsync.password

3.2模擬真實生產環境建立些檔案

[root@web-01 ~]# mkdir -p /var/html/www

[root@web-01 ~]# touch /var/html/www/{1..10}

[root@web-01 ~]# mkdir -p /app/logs

[root@web-01 ~]# touch /app/logs/{1..g}

3.3建立備份指令碼

[root@web-01 ~]# mkdir /server/scripts -p

[root@web-01 ~]# vim /server/scripts/sh.sh

#!/bin/bash

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

ip=(ifconfig eth0|awk -F "[ :]+" 'NR==2{print(ifconfig eth0|awk -F "[ :]+" 'NR==2{print4}') #獲取ip

backpath=/backup/ #備份目錄

name=`hostname` #主機名

mkdir -p backpath/backpath/ip

#判斷週一

if [ $(date +%w) -eq 2 ];then

date="$(date +%F -d "-1day")_week1"

else

date="$(date +%F -d "-1day")"

fi

cd / #切換到根目錄並回車

tar zcf backpath/backpath/ip/name"′′name""{date}"_sysconfig".tar.gz var/spool/cron/ etc/rc.d/rc.local server/scripts/

tar zcf backpath/backpath/ip/name"′′name""{date}"_data".tar.gz var/html/www/ #註釋掉,nfs伺服器不需要備份web資料

tar zcf backpath/backpath/ip/name"′′name""{date}"_logs".tar.gz app/logs/ #註釋掉,nfs伺服器不需要備份web資料

find backpath−typef−name"∗.tar.gz"|xargsmd5sum>backpath−typef−name"∗.tar.gz"|xargsmd5sum>backpath/ip/flag_ip/flag_ip"_"${date} #給檔案打標記

#備份到balackup伺服器

rsync -az $backpath rsync://rsync_backup@192.168.1.244/backup --password-file=/etc/rsync.password

#刪除7天譴資料

find $backpath -type f -mtime +7|xargs rm -f

[root@web-01 ~]# crontab -e

00 00 * * * /bin/sh /server/scripts/sh.sh >/dev/null 2>&1 #新增

3.4建立定時任務,並將指令碼檔案複製到其他伺服器並修改(nfs01)

[root@nfs-01 ~]# mkdir -p /server/scripts/

[root@nfs-01 ~]# vim /server/scripts/sh.sh

#!/bin/bash

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

ip=(ifconfig eth0|awk -F "[ :]+" 'NR==2{print(ifconfig eth0|awk -F "[ :]+" 'NR==2{print4}') #獲取ip

backpath=/backup/ #備份目錄

name=`hostname` #主機名

mkdir -p backpath/backpath/ip

#判斷週一

if [ $(date +%w) -eq 2 ];then

date="$(date +%F -d "-1day")_week1"

else

date="$(date +%F -d "-1day")"

fi

cd / #切換到根目錄並回車

tar zcf backpath/backpath/ip/name"′′name""{date}"_sysconfig".tar.gz var/spool/cron/ etc/rc.d/rc.local server/scripts/

#tar zcf backpath/backpath/ip/name"′′name""{date}"_data".tar.gz var/html/www/ #註釋掉,nfs伺服器不需要備份web資料

#tar zcf backpath/backpath/ip/name"′′name""{date}"_logs".tar.gz app/logs/ #註釋掉,nfs伺服器不需要備份web資料

find backpath−typef−name"∗.tar.gz"|xargsmd5sum>backpath−typef−name"∗.tar.gz"|xargsmd5sum>backpath/ip/flag_ip/flag_ip"_"${date} #給檔案打標記

#備份到balackup伺服器

rsync -az $backpath rsync://rsync_backup@192.168.1.244/backup --password-file=/etc/rsync.password

#刪除7天譴資料

find $backpath -type f -mtime +7|xargs rm -f

[root@nfs-01 ~]# crontab -e

00 00 * * * /bin/sh /server/scripts/sh.sh >/dev/null 2>&1 #新增

設定個就近的時間後檢視nfs-01,web-01,能否正常推資料

[root@backup ~]# ls /backup/

4、mailx使用外部的SMTP來實現blackup伺服器郵件報警

mailx是一個小型的郵件傳送程式

具體步驟如下:

4.1、安裝

[root@blackup ~]# yum install mailx

4.2、編輯配置檔案

[root@blackup ~]# vim /etc/mail.rc #新增如下內容

set from=xxxx@126.com

set smtp=smtp.126.com

set smtp-auth-user=xx@126.com

set smtp-auth-password=xxx

set smtp-auth=login

---說明

from:對方收到郵件時顯示的發件人

smtp:指定第三方發郵件的smtp伺服器地址

set smtp-auth-user:第三方發郵件的使用者名稱

set smtp-auth-password:使用者名稱對應的密碼,有些郵箱需要填授權嗎

smtp-auth:SMTP的認證方式,預設是login,也可以改成CRAM-MD5或PLAIN方式

4.3、測試

[root@001 ~]# init 6

[root@001 ~]# mail -s "hesaucaq" xx@qq.com < /etc/passwd

[root@001 ~]# echo "測試郵件" | mail -s "測試" xxxxx@qq.com

轉自:http://www.cnblogs.com/imweihao/p/7250500.html

以上已經實現了發郵件功能!!!

4.4、在(backup)編輯指令碼實現報警

[root@blackup ~]# mkdir -p /server/scripts/

[root@blackup ~]# cd !$

指令碼如下:

#!/bin/bash

export LANG=en

ip1="192.168.1.222"

ip2="192.168.1.233" #機器增加需加更多的ip

logpath=/tmp/flag.log #日誌檔案地址,後面彙總到這個檔案來傳送

#判斷週一

if [ $(date +%w) -eq 2 ];then

date="$(date +%F -d "-1day")_week1"

else

date="$(date +%F -d "-1day")"

fi

find /backup/ip1 -name flag_ip1 -name flag_ip1"_"{date}|xargs md5sum -c &>{date}|xargs md5sum -c &>logpath

find /backup/ip2 -name flag_ip2 -name flag_ip2"_"{date}|xargs md5sum -c &>>{date}|xargs md5sum -c &>>logpath #需更改成ip2和追加

find /backup/$ip1 -type f -name "*.tar.gz" -a ! -name "*week*" -mtime +180|xargs rm -f

find /backup/$ip2 -type f -name "*.tar.gz" -a ! -name "*week*" -mtime +180|xargs rm -f #需要更改成ip2

mail -s "backup`date`" imweihao@126.com < $logpath #彙總到一個檔案傳送

[root@blackup scripts]# crontab -e

10 00 * * * /bin/sh /server/scripts/mail.sh >/dev/null 2>&1 #之間最好錯開,如果資料量大的話可能需要時間

測試:

設定兩個時間點,週一和週二的日期看是否正常,有些時候太會收不到郵件,那是因為被網易的垃圾郵件機制遮蔽了,一會再試,或者發到自己郵箱!

---以上已實現多機資料備份及郵件告警如果需要增加機器或者增加備份的資料,在指令碼中新增即可

---附1:Rsync的命令格式可以為以下六種:

Rsync的命令格式可以為以下六種:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
對應於以上六種命令格式,rsync有六種不同的工作模式:
對應於以上六種命令格式,rsync有六種不同的工作模式:
  1)拷貝本地檔案。當SRC和DES路徑資訊都不包含有單個冒號”:”分隔符時就啟動這種工作模式。如:rsync -a /data /backup
  2)使用一個遠端shell程式(如rsh、ssh)來實現將本地機器的內容拷貝到遠端機器。當DST路徑地址包含單個冒號”:”分隔符時啟動該模式。如:rsync -avz *.c foo:src
  3)使用一個遠端shell程式(如rsh、ssh)來實現將遠端機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號”:”分隔符時啟動該模式。如:rsync -avz foo:src/bar /data
  4)從遠端rsync伺服器中拷貝檔案到本地機。當SRC路徑資訊包含”::”分隔符時啟動該模式。如:rsync -avzP root@172.16.78.192::www /databack
  5)從本地機器拷貝檔案到遠端rsync伺服器中。當DST路徑資訊包含”::”分隔符時啟動該模式。如:rsync -avzP /databack root@172.16.78.192::www
  6)列遠端機的檔案列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機資訊即可。如:rsync -v rsync://172.16.78.192/www
rsync引數的具體解釋如下:

正常情況下會使用 -avz相當與-vzrtopgD1,表示同步時檔案和目錄屬性不變

-v, --verbose 詳細模式輸出
-q, --quiet 精簡輸出模式
-c, --checksum 開啟校驗開關,強制對檔案傳輸進行校驗
-a, --archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於-rlptgoD
-r, --recursive 對子目錄以遞迴模式處理
-R, --relative 使用相對路徑資訊
-b, --backup 建立備份,也就是對於目的已經存在有同樣的檔名時,將老的檔案重新命名為~filename。可以使用--suffix選項來指定不同的備份檔案字首。
--backup-dir 將備份檔案(如~filename)存放在在目錄下。
-suffix=SUFFIX 定義備份檔案字首
-u, --update 僅僅進行更新,也就是跳過所有已經存在於DST,並且檔案時間晚於要備份的檔案。(不覆蓋更新的檔案)
-l, --links 保留軟連結
-L, --copy-links 想對待常規檔案一樣處理軟鏈結
--copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹以外的鏈結
--safe-links 忽略指向SRC路徑目錄樹以外的鏈結
-H, --hard-links 保留硬鏈結
-p, --perms 保持檔案許可權
-o, --owner 保持檔案屬主資訊
-g, --group 保持檔案屬組資訊
-D, --devices 保持裝置檔案資訊
-t, --times 保持檔案時間資訊
-S, --sparse 對稀疏檔案進行特殊處理以節省DST的空間
-n, --dry-run現實哪些檔案將被傳輸
-W, --whole-file 拷貝檔案,不進行增量檢測
-x, --one-file-system 不要跨越檔案系統邊界
-B, --block-size=SIZE 檢驗演算法使用的塊尺寸,預設是700位元組
-e, --rsh=COMMAND 指定使用rsh、ssh方式進行資料同步
--rsync-path=PATH 指定遠端伺服器上的rsync命令所在路徑資訊
-C, --cvs-exclude 使用和CVS一樣的方法自動忽略檔案,用來排除那些不希望傳輸的檔案
--existing 僅僅更新那些已經存在於DST的檔案,而不備份那些新建立的檔案
--delete 刪除那些DST中SRC沒有的檔案
--delete-excluded 同樣刪除接收端那些被該選項指定排除的檔案
--delete-after 傳輸結束以後再刪除
--ignore-errors 及時出現IO錯誤也進行刪除
--max-delete=NUM 最多刪除NUM個檔案
--partial 保留那些因故沒有完全傳輸的檔案,以是加快隨後的再次傳輸
--force 強制刪除目錄,即使不為空
--numeric-ids 不將數字的使用者和組ID匹配為使用者名稱和組名
--timeout=TIME IP超時時間,單位為秒
-I, --ignore-times 不跳過那些有同樣的時間和長度的檔案
--size-only 當決定是否要備份檔案時,僅僅察看檔案大小而不考慮檔案時間
--modify-window=NUM 決定檔案是否時間相同時使用的時間戳視窗,預設為0
-T --temp-dir=DIR 在DIR中建立臨時檔案
--compare-dest=DIR 同樣比較DIR中的檔案來決定是否需要備份
-P --progress 顯示備份過程及傳輸進度

-z, --compress 對備份的檔案在傳輸時進行壓縮處理
--exclude=PATTERN 指定排除不需要傳輸的檔案模式
--include=PATTERN 指定不排除而需要傳輸的檔案模式
--exclude-from=FILE 排除FILE中指定模式的檔案
--include-from=FILE 不排除FILE指定模式匹配的檔案
--version 列印版本資訊
--address 繫結到特定的地址
--config=FILE 指定其他的配置檔案,不使用預設的rsyncd.conf檔案
--port=PORT 指定其他的rsync服務埠
--blocking-io 對遠端shell使用阻塞IO
-stats 給出某些檔案的傳輸狀態
--progress 在傳輸時現實傳輸過程
--log-format=formAT 指定日誌檔案格式
--password-file=FILE 從FILE中得到密碼
--bwlimit=KBPS 限制I/O頻寬,KBytes per second
-h, --help 顯示幫助資訊

 

----附2:rsync 常見錯誤及解決方法

問題 @ERROR: chroot failed

@ERROR: chroot failed rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

原因:伺服器端的目錄不存在或無許可權。

解決辦法:

建立目錄並修正許可權可解決問題。

問題 skipping non-regular file

receiving incremental file list

skipping non-regular file "vendor/bin/doctrine"

skipping non-regular file "vendor/bin/doctrine.php"

sent 1990 bytes received 489209 bytes 327466.00 bytes/sec total size is 182515746 speedup is 371.57

原因:source原始檔有軟連結。

解決方法:修改為 rsync -va,其中 -a == -rlptgoD (no -H,-A,-X) 或者 rsync -rvltOD 也可以。

解決後:

receiving incremental file list

vendor/bin/doctrine -> ../doctrine/orm/bin/doctrine

vendor/bin/doctrine.php -> ../doctrine/orm/bin/doctrine.php

sent 1998 bytes received 489279 bytes 327518.00 bytes/sec total size is 182515746 speedup is 371.51

問題@ERROR: module is read only

sending incremental file list

ERROR: module is read only

rsync error: syntax or usage error (code 1) at main.c(866) [receiver=3.0.6]

rsync: read error: Connection reset by peer (104)

rsync error: error in rsync protocol data stream (code 12) at io.c(759) [sender=3.0.6]

原因:source源伺服器端許可權設定read為only只讀許可權。

解決方法:read only = false

問題@ERROR: auth failed on module tee

@ERROR: auth failed on module tee rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.6]

原因:伺服器端該模組(tee)需要驗證使用者名稱密碼,但客戶端沒有提供正確的使用者名稱密碼,認證失敗。

解決方法:提供正確的使用者名稱密碼解決此問題。

問題 @ERROR: Unknown module 'tee_nonexists'

@ERROR: Unknown module 'tee_nonexists' rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.6]

原因:伺服器不存在指定模組。

解決方法:提供正確的模組名或在伺服器端修改成你要的模組以解決問題。

問題 password file must not be other-accessible

password file must not be other-accessible

continuing without password file

Password:

原因:這是因為rsyncd.pwd rsyncd.secrets的許可權不對,應該設定為600。

解決方法:chmod 600 rsyncd.pwd

問題 rsync: failed to connect No route to host

rsync: failed to connect to 192.168.1.10: No route to host (113) rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=3.0.6]

原因:對方沒開機、防火牆阻擋、通過的網路上有防火牆阻擋,都有可能。

解決方法:在iptables 中開放該埠,語句如下:

iptables -I INPUT -p tcp –dport 873 -j ACCEPT

rsync預設埠873,其實就是把tcp udp的873埠開啟。

問題 rsync error: error starting client-server protocol

rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.6]

原因:/etc/rsyncd.conf配置檔案內容有錯誤。請正確核對配置檔案。

問題 rsync: chown "" failed: Invalid argument (22)

rsync: chown "" failed: Invalid argument (22)

原因:許可權無法複製。去掉同步許可權的引數即可。(這種情況多見於Linux向Windows的時候)

問題 @ERROR: daemon security issue — contact admin

@ERROR: daemon security issue — contact admin rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]

原因:同步的目錄裡面有許可權不足的軟連線檔案,需要伺服器端的/etc/rsyncd.conf開啟use chroot = yes。

問題 rsync: read error: Connection reset by peer (104)

rsync: read error: Connection reset by peer (104) rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.6]

解決:很大可能是伺服器端沒有開啟 rsync 服務,開啟服務。

問題 @ERROR: failed to open lock file

@ERROR: failed to open lock file rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.6]

解決:配置檔案 rsync.conf 中新增 lock file = rsyncd.lock 即可解決。

部分程式碼貼圖:

2.1 搭建backup伺服器。
2.1.1 rsync的預設配置檔案是/etc/rsyncd.conf,配置檔案預設是空的,需要自己編輯

[root@backup ~]# cat /etc/rsyncd.conf
#rsync_config_____________________________start
#created by oldboy 15:01 2007-6-5
##rsyncd.conf start##
uid = rsync  
gid = rsync   
use chroot = no    
max connections = 200      
timeout = 300    
pid file = /var/run/rsyncd.pid     
lock file = /var/run/rsyncd.lock     
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password       
[backup]     
path = /backup      
[nfsbackup]
path = /nfsbackup
[luo]
path = /luo
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = tang
secrets file = /etc/tang
#rsync_config________________________end

2.1.2 新增使用者rsync

[root@backup ~]# useradd rsync -s /sbin/nologin -M
[root@backup ~]# cat /etc/passwd|grep rsync
rsync:x:501:501::/home/rsync:/sbin/nologin

為什麼用虛擬使用者?
應答:檔案和程式都要滿足屬主的要求,檔案和程式的存在一定是需要使用者的,也是為了安全問題。
2.1.3 根目錄下新增backup目錄

[root@backup ~]# mkdir -p /backup/
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 3 rsync rsync 20480 1月  18 09:51 /backup/

2.1.4 建立rsync的密碼配置檔案,預設也是空的

[root@backup ~]# cat /etc/rsync.password 
rsync_backup:oldboy
[root@backup ~]# chmod 600  /etc/rsync.password 
[root@backup ~]# ls -l /etc/rsync.password 
-rw-------. 1 root root 20 11月 29 01:14 /etc/rsync.password

2.1.5 開啟服務並開機自啟動

[root@backup ~]# tail -1 /etc/rc.local 
/usr/bin/rsync --daemon

 

相關文章