无标题文章

需求:
每天晚上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/ [email protected]::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/ [email protected]::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检测是否备份成功

你可能感兴趣的:(无标题文章)