一、已知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...