您好,登錄后才能下訂單哦!
系統版本: CentOS 7
內核版本: 3.10.0-957
1、基本備份要求
已知3臺服務器主機名分別為web01、backup 、nfs01,主機信息見下表:
服務器說明 | IP(NAT) | 內網IP(NAT_LAN) | 主機名稱 |
---|---|---|---|
nginx web服務器 | 10.0.0.7/24 | 172.16.1.7/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 |
? 要求:每天晚上00點整在Web服務器上打包備份系統配置文件、網站程序目錄及訪問日志并通過rsync命令推送備份服務器backup上備份保留。
實施方案流程
要備份的系統配置文件
第一步:查看rsync服務
查看rsync服務有沒有安裝 rpm -qa rsync
沒有rsync服務就安裝一下 yum install -y rsync
創建備份目錄 mkdir /backup
第二部:編輯服務配置文件
uid = rsync # 虛擬用戶 --安全性
gid = rsync
port = 873 # 端口號
fake super # 偽裝超級用戶 -- 管理員
use chroot = no # 安全有關參數
max connections = 200 # 最大連接數量
timeout = 300 # 等待用戶時間
pid file = /var/run/rsyncd.pid # 服務運行狀態的進程號
lock file = /var/run/rsync.lock # 結合 max connections 控制最大鏈接數
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] # 模塊信息 (標識一個目錄)
comment = "welcome to backup" # 模塊注釋說明
path = /backup # 模塊指向目錄所在
第三部:根據配置文件需求創建所需
1. useradd -M -s /sbin/nologin rsync # 創建虛擬用戶
2. echo "rsync_backup:oldboy123" >/etc/rsync.password #創建認證用戶密碼
3. chmod 600 /etc/rsync.password # 密碼文件設置安全權限 ★
4. mkdir /backup # 創建備份數據目錄
5. chown rsync.rsync /backup/ # 修改文件屬主屬組為配置文件指定用戶
6. systemctl start rsyncd # 啟動服務程序
7. systemctl enable rsyncd # 設置服務程序開機自動啟動
第四步: 配置郵件服務
1. yum install -y mailx
2. vim /etc/mail.rc # 添加下面的內容.隨便位置
set from=QQ號碼@qq.com # 郵箱隨意.以QQ為例
set smtp=smtp.qq.com
set smtp-auth-user=QQ號碼@qq.com
set smtp-auth-password=QQ設置里的第三方授權碼
set smtp-auth=login
3. systemctl restart postfix.service # 重啟郵件服務
4. echo "hello" | mailx -s "test" qq號@qq.com
第一步: 進行備份數據測試
rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
第二部: 實現免交互備份數據
echo oldboy123 >/etc/rsync.password # 創建認證用戶密碼文件
chmod 600 /etc/rsync.password # 為密碼文件設置一個安全權限
rsync -avz /oldboy/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password # 實現免交互傳輸
web網站服務器
web客戶端腳本編寫:
mkdir -p /server/scripts mkdir /etc/sysconfig/iptables
mkdir -p /var/html/www mkdir /app/logs # 環境準備
cd /server/scripts
vim web_backup.sh
#!/bin/bash
ip=$(hostname -i)
name=$(hostname)
date=$(date +%F_%w -d "-1 day")
mkdir -p /backup/$ip
# 打包配置文件
tar zcnPf /backup/$ip/${name}_config_${date}.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts &>/dev/null
# 打包站點目錄
tar zcnPf /backup/$ip/${name}_www_${date}.tar.gz /var/html/www &>/dev/null
# 打包網站訪問日志
tar zcnPf /backup/$ip/${name}_log_${date}.tar.gz /app/logs &>/dev/null
# 創建數據檢驗信息
md5sum $(find /backup/$ip -type f -mmin -15) >/backup/md5_${name}.log
# 上傳數據到備份服務器
rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
# 刪除本體超過7天的數據包
find /backup -type f -mtime +7 -delete &> /dev/null
chmod 700 /server/scripts/web_backup.sh
crontab -e # 加入定時任務里
0 0 * * * /bin/bash /server/scripts/web_backup.sh
nfs存儲服務器
nfs客戶單腳本編寫:
mkdir -p /server/scripts mkdir /etc/sysconfig/iptables
cd /server/scripts
vim nfs_backup.sh
#!/bin/bash
ip=$(hostname -i)
name=$(hostname)
date=$(date +%F_%w -d "-1 day")
mkdir -p /backup/$ip
# 打包配置文件
tar zcnPf /backup/$ip/${name}_config_${date}.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts &>/dev/null
# 創建數據檢驗信息
md5sum $(find /backup/$ip -type f -mmin -15) >/backup/md5_${name}.log
# 上傳數據到備份服務器
rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
# 刪除本體超過7天的數據包
find /backup -type f -mtime +7 -delete &> /dev/null
chmod 700 /server/scripts/nfs_backup.sh
crontab -e # 加入定時任務里
0 0 * * * /bin/bash /server/scripts/nfs_backup.sh
backup備份服務器
backup服務端腳本編寫
mkdir -p /server/scripts
vim /server/scripts/delete.sh
#!/bin/bash
date=$(date +%F)
mkdir -p /backup
# 校驗數據完整性
md5sum $(find /backup -type f -name "*.log") -c >/tmp/check_md5.txt
# 郵件告知管理員
mailx -s "$date 校驗信息" qq號@qq.com </tmp/check_md5.txt
# 刪除180天前數據,保留周一數據
find /backup -type f -mtime +180 ! -name "*_1.tar.gz" -delete
chmod 700 /server/scripts/delete.sh
crontab -e # 加入定時任務里
0 5 * * * /bin/bash /server/scripts/delete.sh
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。