无标题文章

需求:
每天晚上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阅读 135,269评论 19 139
  • jHipster - 微服务搭建 CC_简书[https://www.jianshu.com/u/be0d56c4...
    quanjj阅读 853评论 0 2
  • 4层负载均衡和7层负载均衡的区别。A、rsync的安装;软件包安装# yum install rsync 注...
    米开朗基乐阅读 3,735评论 0 1
  • 1.炎热的夏天即将过去时,一位年轻人走在一个阴凉的山道,路过一个佛家境地地是停下了脚步,走进寺庙的大门,看着百...
    昂贵的青春阅读 139评论 0 1
  • 2016年还没结束,可是我就想在这个10月快要收尾的时候给你们讲个故事。 故事的主人公叫叶子。 在叶子的订婚宴上,...
    司恬小丫阅读 1,398评论 20 30