Linux運(yùn)維day33-階段二——遠(yuǎn)程備份項(xiàng)目

一、項(xiàng)目結(jié)構(gòu)圖

二、服務(wù)端環(huán)境配置

1、環(huán)境初始化


1.安裝

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

2.配置 ( 改變程序運(yùn)行軌跡 )

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

uid = rsync

gid = rsync

port = 873

fake super = yes

use chroot = no

max connections = 200

timeout = 600

ignore errors

read only = false

list = false

auth users = rsync_backup

secrets file = /etc/rsync.passwd

log file = /var/log/rsyncd.log

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

[backup]

comment = welcome to oldboyedu backup!

path = /backup

3.根據(jù)配置創(chuàng)建一些初識(shí)環(huán)境:

3.1創(chuàng)建rsync用戶? ? rsync程序需要rsync這個(gè)用戶來(lái)運(yùn)行

[root@backup ~]# groupadd rsync

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

[root@backup ~]# id rsync

uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)

3.2 虛擬用戶? ? /etc/rsync.passwd? ? ? username:password

[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd

[root@backup ~]# chmod 600 /etc/rsync.passwd

3.3 創(chuàng)建一個(gè)/backup目錄

[root@backup ~]# mkdir /backup

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

4.啟動(dòng)

[root@backup ~]# systemctl start rsyncd

[root@backup ~]# systemctl enable rsyncd

5.檢測(cè)

[root@backup ~]# netstat -lntp | grep 873

tcp? ? ? ? 0? ? ? 0 0.0.0.0:873? ? ? 0.0.0.0:*? ? ? ? LISTEN? ? 8616/rsync?


2、發(fā)郵件的環(huán)境初始化

[root@backup /]# yum install mailx -y

[root@backup /]# vim /etc/mail.rc #跳轉(zhuǎn)至最后一行,然后進(jìn)入編輯模式

set from=發(fā)件人@qq.com

set smtp=smtps://smtp.qq.com:465

set smtp-auth-user=發(fā)件人@qq.com

set smtp-auth-password=xxxx

set smtp-auth=login

set ssl-verify=ignore

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

三、服務(wù)端腳本編寫(xiě)

[root@backup ~]# cat /scripts/check_data_notify.sh

#!/usr/bin/bash

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

Src=/backup

Date=$(date +%F)

#1.校驗(yàn)每天客戶端推送過(guò)來(lái)的flag數(shù)據(jù)

md5sum -c ${Src}/*_${Date}/flag_${Date} >${Src}/result_${Date}

#2.郵件通知管理員

mail -s "Rsync Backup ${Date}" 收件人@qq.com < ${Src}/result_${Date}

#3.保留最近180天的數(shù)據(jù)

find $Src/ -type d -mtime +180 | xargs rm -rf


四、客戶端

1、客戶端腳本編寫(xiě)

[root@nfs ~]# mkdir /scripts

[root@nfs ~]# vim /scripts/clinet_push_data_server.sh

#!/usr/bin/bash

# variables == 變量? ---> 一個(gè)固定的字符串表示一個(gè)不固定的值

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

Src=/backup

Host=$(hostname)

Addr=$(ifconfig eth1 | awk 'NR==2 {print $2}')

Date=$(date +%F)

Dest=${Host}_${Addr}_${Date}

#1.準(zhǔn)備對(duì)應(yīng)的備份目錄

[ -d $Src/$Dest ] ||? mkdir -p $Src/$Dest

#2.將文件拷貝至備份目錄

cd / && \

[ -f $Src/$Dest/sys.tar.gz ] ||? tar czf $Src/$Dest/sys.tar.gz etc/fstab etc/hosts etc/passwd && \

[ -f $Src/$Dest/other.tar.gz ] || tar czf $Src/$Dest/other.tar.gz var/spool/cron/ scripts/ && \

#3.添加標(biāo)記

[ -f $Src/$Dest/flag_${Date} ] ||? md5sum $Src/$Dest/*.tar.gz > $Src/$Dest/flag_${Date}

#4.推送數(shù)據(jù)至遠(yuǎn)程倉(cāng)庫(kù)

export RSYNC_PASSWORD=123456

rsync -avz $Src/ rsync_backup@172.16.1.41::backup

#5.保留本地最近7天的數(shù)據(jù)

find $Src/ -type d -mtime +7 | xargs rm -rf

2、定時(shí)任務(wù)

#定時(shí)執(zhí)行打包腳本,將備份文件和校驗(yàn)flag推送到服務(wù)端

*/1 * * * * sh /scripts/script_clinet_bash.sh? >/dev/null


五、QQ郵箱收到郵件

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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