rsync全网备份项目
admin
2023-03-02 12:21:05
0

系统版本: CentOS 7
内核版本: 3.10.0-957

假设领导给你一个rsync全网备份项目

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上备份保留。

  • 思考分析该项目的作用
  • 做一个简短的实施方案
  • 跟领导对接核实方案
  • 和需要对接的部门开会沟通

实施方案流程

  • 创建服务器的备份目录 ==/backup==
  • 要备份的系统配置文件

    • 定时任务的配置文件 ==(/var/spool/cron/root)==
    • 开机自启动配置文件 ==(/etc/rc.local)==
    • 防火墙iptables配置文件 ==(/etc/sysconfig/iptables)==
    • 日常脚本的目录 ==(/server/scripts)==
    • web服务器站点目录 ==(/var/html/www)==
    • web服务器访问日志 ==(/app/logs)==
  • 非备份服务器保留打包后的7天内数据
  • 备份服务器保留周 1 及180以内的数据
  • 确保备份数据尽量完整正确,在本机创建校验包,服务器上校验数据完整性.
  • 把备份数据结果通过==email==发送给系统管理员邮箱中
配置服务端
第一步:查看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              # 实现免交互传输

rsync全网备份项目

编写脚本

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 

相关内容

热门资讯

有人呼吁白宫“封杀”中国开源大... 未来一段时间,将有多款中国开源模型发布。Kimi K3定于7月27日正式开源,阿里即将开源2.4万亿...
20名“高考状元”选择学医!此... 2026年香港高考的24名“状元”中,有20人明确表示将留港攻读医科。多年来,香港最顶尖的“学霸们”...
“抢人大战”,风向有变? 各地一场“抢老人”的大战,已然徐徐拉开大幕。最近,有着人口净流出压力的吉林,计划拿出3亿元发展旅居康...
石家庄一家不限量的爱心素食面馆... 7月24日正午时分,记者来到位于石家庄市新华区东明家居西二环店北门旁的“素面”小店,不大的店面里坐满...
中材科技申请风电叶片外补强辅助... 国家知识产权局信息显示,中材科技(伊吾)风电叶片有限公司申请一项名为“风电叶片外补强辅助固化装置”的...
为人工智能治理提供重要公共产品 图为2026世界人工智能大会暨人工智能全球治理高级别会议举办期间,在世博展览馆灵心巧手展位,参观者观...
泽连斯基称俄对乌多地发动大规模... 当地时间25日,乌克兰总统泽连斯基通报称,俄军于当日凌晨对乌克兰多地发动大规模空袭,使用2枚导弹、近...
不怕没水!武汉科学家找到水稻身... 干旱来了,水稻启动"抗旱模式",可一启动就长不大、结得少——这是困扰育种界几十年的老难题。7月23日...
多款手机涨价超1000元,大存... 今年暑期消费旺季,国内智能手机市场迎来一轮显著的价格上调。第一财经记者走访深圳多家品牌门店发现,以v...
SpaceX上市后星舰首飞:首... 界面新闻实习记者 | 李响 在经历多次波折后,SpaceX公司的星舰(Starship)终于完成了...