無標題文章

需求:
每天晚上00:00講web服務器A上打包備份系統配置文件,網站程序目錄及訪問日志,并用rsync整點推送到備份服務器B上

  1. 系統配置文件包括但不限于
    a. 定時任務配置文件(/var/spool/cron/root)
    b. 開機自啟配置文件(/etc/rc.local)
    c. 日常腳本目錄(/server/scripts)
    d. 防火墻iptables的配置文件(/etc/sysconfig/iptables)

  2. web服務器站點目錄假定為(/var/html/www)

  3. web服務器A的訪問日志文件路徑假定為(/app/logs)

  4. web服務器保留打包后7天的備份數據即可(本地保留不能多于7天,因為太多的話硬盤會滿),備份服務器B上要保留6個月的數據副本

  5. 備份服務器B上要按照備份數據服務器的IP為目錄保存,打包文件按時間名字保存

第一個里程碑,rsync數據備份

  1. 配置rsync服務器
    1.1 安裝rsync
    yum install -y rsync
    1.2 配置rsync配置文件
    vim /etc/rsyncd.conf
    加入如下配置
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/run/rsyncd.log
read only = false
list = false
hosts allow = 172.16.1.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup

1.3 配置密碼本文件
vim /etc/rsync.password
寫入設置的用戶名和密碼
rsync_backup:123456
1.4 修改密碼本文件的權限
chmod 600 /etc/rsync.password
1.5 創建備份目錄
mkdir /backup
1.6 創建虛擬用戶
useradd rsync -s /sbin/nologin -M rsync
1.6 修改備份目錄的權限所屬
chown rsync:rsync /backup

  1. 配置客戶端
    2.1 安裝rsync
    yum install -y rsync
    2.2 創建備份目錄
    mkdir /backup
    2.3 創建密碼文件
    vim /etc/rsync.password
    寫入服務器端設置的密碼
    123456
    2.4 修改密碼文件權限
    chmod 600 /etc/rsync.password
  2. 測試是否能同步
    在客戶機執行:
touch /backup/{1..9}
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password

第二個里程碑,web本地實現打包腳本

ip=$(ifconfig eth1 | awk -F '[ :]+' 'NR==2 {print $4}')
Path="/backup/$ip"
mkdir $Path
tar -zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables-config /server/scripts/
tar -zcf $Path/www_$(date +%F).tar.gz /var/html/www/
tar -zcf $Path/logs_$(date +%F).tar.gz /app/logs/

第三個里程碑,配置定時任務

配置web服務器的定時任務

mkdir -p /server/scripts
vim /server/scripts/backup.sh
寫入以下內容

#!/bin/bash
IP=$(ifconfig eth1 | awk -F '[ :]+' 'NR==2 {print $4}')
Path="/backup/$IP"
[ ! -d $Path ] && mkdir $Path -p
#backup
tar -zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables-config /server/scripts/
tar -zcf $Path/www_$(date +%F).tar.gz /var/html/www/
tar -zcf $Path/logs_$(date +%F).tar.gz /app/logs/
#to bak server
/usr/bin/rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
#delete
find /backup -type f -name "*.tar.gz"  -mtime +7 | xargs rm -f

web服務器端加入計劃任務
crontab -e
00 00 * * * /bin/sh /server/scripts/backup.sh &> /dev/null

在backup服務器端編寫腳本刪除180天之前的壓縮文件
mkdir -p /server/scripts/
vim /server/scripts/del.sh
寫入以下腳本內容
/bin/find /backup -type f -name "*.tar.gz" -mtime +180 | xargs rm -f
寫完后執行以下看是否有錯誤
sh /server/scripts/del.sh
加入計劃任務刪除180天之前的壓縮文件
crontab -e
00 00 * * * /bin/sh /server/scripts/del.sh

完成!!!

用md5檢測是否備份成功

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • jHipster - 微服務搭建 CC_簡書[http://www.lxweimin.com/u/be0d56c4...
    quanjj閱讀 832評論 0 2
  • 4層負載均衡和7層負載均衡的區別。A、rsync的安裝;軟件包安裝# yum install rsync 注...
    米開朗基樂閱讀 3,700評論 0 1
  • 1.炎熱的夏天即將過去時,一位年輕人走在一個陰涼的山道,路過一個佛家境地地是停下了腳步,走進寺廟的大門,看著百...
    昂貴的青春閱讀 136評論 0 1
  • 2016年還沒結束,可是我就想在這個10月快要收尾的時候給你們講個故事。 故事的主人公叫葉子。 在葉子的訂婚宴上,...
    司恬小丫閱讀 1,387評論 20 30