rsync備份例項

2021-09-30 01:58:46 字數 2504 閱讀 8398

一、已知3臺伺服器主機名分別為web01 rsync nfs 主機資訊見下表

角色外網ip(nat)

內網ip(lan)

主機名web

eth0:10.0.0.7

eth1:172.16.1.7

web01

nfseth0:10.0.0.31

eth1:172.16.1.31

nfs01

rsync

eth0:10.0.0.41

eth1:172.16.1.41

nsync

客戶端需求

1.客戶端提前準備存放的備份的目錄,目錄規則如下:/backup/nfs_172.16.1.31_2019-11-27

2.客戶端在本地打包備份(系統配置檔案/應用配置等)拷貝至/backup/nfs_172.16.1.31_2019-11-27

3.客戶端最後將備份的資料進行推送至備份伺服器

4.客戶端伺服器本地保留最近7天的資料,避免磁碟浪費空間

5.客戶端每天凌晨1點定時執行該指令碼

服務端需求

1.服務端部署rsync,用於接收客戶端推送過來的備份資料

2.服務端需要每天校驗客戶端推送過來的資料是否完整

3.服務端每天需要將校驗的結果通知管理員(郵件)

4.服務端僅保留6個月的備份資料,其餘的全部刪除 flag

注意:所有伺服器的備份目錄必須都為/backup

二、思路:

1.需要備份什麼?

etc/hosts /etc/passwd /etc/fstab /var/spool/cron

2.備份到那裡?

/backup/nfs_172.16.1.31_2019-11-27

主機名:hostname

mkdir -p /backup/$(hostname)_$(ifcfg eth1 | awk '/inet / ')_$(date +%f)

vim /etc/mail.rc

在最後

一行新增

\color

在最後一行添

set from=***@qq.com

set smtp=smtps:

set smtp-auth-user=***@qq.com

set smtp-auth-password=

#授權碼

set smtp-auth=login

set ssl-verify=ignore

set nss-config-dir=/etc/pki/nssdb/

三、客戶端指令碼:

vi /scripts/client_push_data_server.sh

#!/usr/bin/bash

path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

path=/backup

host=

$(hostname

)addr=

$(ifconfig eth1 |

awk'/inet / '

)date=

$(date +%f)

dest=

$path/$__$

]|| md5sum $dest/*.tar.gz >

$dest/flag_$

服務端指令碼:

vi /scripts/check_data_notify.sh

#!/usr/bin/bash

path=/backup

date=

$(date +%f)

path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#1校驗推送過來的flag

md5sum -c $path/*/flag_$

>

$path/result_$

#2通知管理人員結果

mail -s "rsync backup $

四、定時任務測試

客戶端每天凌晨1點執行

crontab -l

00 01 * * * sh /scripts/client_push_data_server.sh &

>/dev/null

服務端每天凌晨5點測驗

crontab -l

00 05 * * * sh /scripts/check_data_notify.sh &

>/dev/null

五、如果增加一台機器,兩台,五颱呢?

web01 依照上述nfs客戶端操作編寫建立目錄、執行備份指令碼,執行定時任務指令碼,推送至rsync伺服器

rsync備份同步

伺服器端 每個需要備份的專案所在的伺服器作為 rsync 的server 端,配置如下 rsync 的配置檔案配置允許備份目錄 etc rsync.conf 如下 uid nobody gid nobody use chroot no max connections 3 transfer loggi...

rsync增量備份

增量備份 原始檔同步到備份目錄 同時備份更改的檔案且記錄下同步輸出檔案日誌 bin bash riqi date y m d h m srcdatapath newdata destdatapath newdata backup backupdir newdata backup chfileback...

rsync資料備份

scp遠端複製 scp是 secure copy的縮寫,scp是linux系統下基於ssh登陸進行安全的遠端檔案拷貝命令。命令格式 scp local file remote username remote ip remote folder 本地到遠端 scp r discuz x3.1 sc ut...