郑州做响应式网站,南昌英文网站建设,wordpress 开店,wordpress二次开发教程种子备份服务概述
备份服务:需要使用到脚本,打包备份,定时任务.
备份服务:rsyncd服务,不同主机之间数据传输.
特点#xff1a;
rsync是个服务也是命令使用方便#xff0c;具有多种模式传输数据的时候是增量传输
增量与全量#xff1a; 全量 #xff1a;无论多少数据全部推…备份服务概述
备份服务:需要使用到脚本,打包备份,定时任务.
备份服务:rsyncd服务,不同主机之间数据传输.
特点
rsync是个服务也是命令使用方便具有多种模式传输数据的时候是增量传输
增量与全量 全量 无论多少数据全部推送走scp 增量只会把修改新建了的文件传输走rsync
把/etc/目录传输到另外一台机器的/tmp/下面 scp -r /etc/sysconfig/ root192。168.28.131/tmp/ rsync -avz /etc/sysconfig/ root192.168.28.131:/mnt/
rsync企业应用场景 应用场景(业务场景) 应用建议
rsync作为命令使用 临时拉取,推送数据.未来这个需求可以通过scp命令实现.
定时备份:rsync服务定时任务 定时备份,定期备份案例.(定时任务进行备份通过rsync传输备份)
实时同步:rsync服务sersync/lsyncd实现实时同步 解决存储服务单点问题
rsync服务与异地容灾找一个异地的服务器存放备份
注意单点问题:同一个功能/同一个服务,只有1台节点.
rsync不同的模式
1.1rsync本地模式
rsync -a /etc/ /tmp/ rsync -a /etc /opt/ 在rsync对于目录 /etc/ /etc是有区别的 /etc /etc目录目录的内容 /etc/ /etc/目录下面的内容
1.2远程模式
格式
rsync -a 源文件 目标
推送:rsync /etc/hostname root192.168.28.131:/tmp
拉取:rsync root192.168.28.131:/etc/hosts /opt/
#推送/etc/hostname到192.168.28.131的/tmp/目录 rsync -a /etc/hostname root192.168.28.131:/tmp
#推送/etc目录及目录内容到131的/tmp下面 ##推送第1次 全量 rsync -av /etc root192.168.28.131:/tmp ##推送第2次 发现没有推送 rsync -av /etc root192.168.28.131:/tmp ##创建文件再次推送 touch /etc/wulin.txt rsync -av /etc root192.168.28.131:/tmp #通过scp推送 /etc目录及目录内容到131的 /opt下面 scp -r /etc/ root192.168.28.131:/opt/ -r递归传输
1.3守护进程模式
服务使用流程
部署
配置
启动,使用
优化
故障
自动化
(监控,日志,安全,自动部署,容器)
1.3.1检查是否安装
检查安装 更新 yum install -y rsync 检查软件包内容 /etc/rsyncd.conf #配置文件 /usr/bin/rsync #命令 /usr/lib/systemd/system/rsyncd.service #systemctl对应的配置文件
1.3.2进行配置
[rootbackup /wulin]# cat/etc/rsyncd.conf #created by wulin 2024-5-12 ##rsyncd.conf start## fake super yes uid rsync gid rsync use chroot no max connections 2000 timeout 600 pid file /var/run/rsyncd.pid lock file /var/run/rsync.lock log file /var/log/rsyncd.log ignore errors
read only false list false #hosts allow 10.0.0.0/24 #hosts deny 0.0.0.0/32 auth users rsync_backup secrets file /etc/rsync.password ##################################### [data] comment www by wulin 2024-5-12 path data
#启动服务 systemctl enable rsyncd systemctl start rsyncd
#检查进程 ps -ef |grep rsync
#检查端口 ss -lntup |grep rsync
1.3.2后续配置 #1.添加虚拟用户
useradd -s /sbin/nologin -M rsync#2.创建密码文件
密码文件格式:用户名:密码
echo rsync_backup:123 /etc/rsync.password
chmod 600 /etc/rsync.password#3.共享目录与权限
mkdir /data/#启动服务
systemctl start rsyncd
systemctl enable rsyncd#访问测试
rsync -avz /etc/hosts rsync_backup192.168.28.41data
rsync_backup是服务端配置文件中的认证用户
data表示模块名字
本地测试
[rootbackup ~]# rsync -av /etc/hostname
rsync_backup192.168.28.41data
Password:
sending incremental file list
hostname
sent 102 bytes
received 43 bytes 41.43 bytes/sec
total size is 7
speedup is 0.05[rootbackup ~]# ll /data/
total 4
-rw-r--r-- 1 rsync rsync 17:02 hostname#客户端测试 ##基本测试 [rootnfs01 ~]# rsync -avz /etc/hosts rsync_backup172.16.1.41data Password: sending incremental file list hosts
sent 214 bytes received 43 bytes 73.43 bytes/sec total size is 329 speedup is 1.28
##免密码传输数据到服务器 [rootnfs01 ~]#echo ‘123’ /etc/rsync.passwords [rootnfs01 ~]#chmod 600 /etc/rsync.passwords [rootnfs01 ~]# [rootnfs01 ~]#rsync -avz /etc/hosts rsync_backup172.16.1.41::data --password-file/etc/rsync.passwords sending incremental file list
sent 47 bytes received 20 bytes 134.00 bytes/sec total size is 333 speedup is 4.97
传到客户端 [rootnfs01 ~]#rsync -avz /tmp/etc.tar.gz rsync_backup172.16.1.41::data --password-file/etc/rsync.passwords sending incremental file list etc.tar.gz
1.4守护进程补充
uid,gid与auth user
1.用户执行命令:rsync -avz /tmp/etc.tar.gz rsync_backupbackup::data --passwordfile/etc/rsync.password
2.服务端收到数据:判断rsync_backup用户,然后等待输入密码
3.把用户名和密码与配置文件里面对比auth user和secretsfile
4.通过后,传输数据
5.数据到达服务器所有者被修改为uid和gid指定的(rsync)
6.数据写入data模块(/data/)目录下面.
免密的方式连接服务端(命令行指定客户端密码文件)
客户端密码文件只存储密码即可 echo 123 /etc/client.rsync chmod 600 /etc/client.rsync rsync -avz /etc/hosts rsync_backup172.16.1.41::data --password- file/etc/client.rsync
访问控制-安全措施
hosts allow只准许指定的ip或网段访问
hosts deny拒绝. 配置只准许172.16.1.0/24网段访问
2.1rsync选项
-a
-rlptgoD-r递归复制-l复制软连接-p保持权限不变-m保持修改时间不变-o所有者不变-g用户组不变-D --devices --specials设备与特殊文件
-v 显示过程
-z 传输数据时候进行压缩公网
-p 显示每rsync -av . root192.168.28.131:/tmp/ --exclude04rsync -av . root192.168.28.131:/mnt --exclude{04,05}个文件传输过程(进度条)断点续传–partial --progress
–bwlimit 限速注意不要与-z一起使用
–exclude、–exclude-from排除
–delete目标目录与源目录保持一致的传输
限速并传输
rsync -aP --bwlimit500kb /tmp/1g
192.168.28.131:/mnt/传输并排除
rsync -av . root1192.168.28.1311:/tmp/ --exclude04
rsync -av .
root192.168.28.131:/mnt --exclude
{04,05}通过文件内容进行排除
[rootbackup /wulin]# cat /tmp/paichu.txt
03
05
10[rootbackup /wulin]# rsync -av .
root192.168.28.131:~ --exclude-from/tmp/paichu.txt保持源与目标数据一致
rsync -avP --delete . root192.168.28.131:/tmp/故障总结
password mismatch
backup rsyncd[3177]: authfailed on module data from UNKNOWN(10.0.0.41) for rsync_backup: no secretsfile
no secrets fileselinux和防火墙
项目案例
可能来自于老大的一句话:网站数据需要备份,你操作一下
接下来的内容需要你自己规划,备份什么内容?如何备份?如何收集备份(统一存放备份)?保留时间?都是什么系统?什么系统的版本? 备份什么 数据用户数据库数据库 存储 配置文件 脚本和代码 网站代码
日志收集 如何备份 如何收集 rsync服务收集备份rsync客户端推送备份到rsync服务器 2.2项目流程
1环境准备
1环境准备
角色 主机 运行服务存放备份 backuprsync服务端生成备份 nfs01rsync客户端其他服务生产备份 web01rsync客户端其他服务 项目步骤 这里为操作步骤未来的工作还会有沟通与其他部门进行商讨定期汇报 | 步骤说明 详细内容 | | | ------------------------------------------------------------ | ---- | | rsync服务端并调试 服务端配置 、back目录 | | | rsync客户端节点配置脚本备份 备份 推送 清理 | | | 其他节点匹配定时任务 定时运行脚本 | | | 在备份服务器上检查并发送邮件 在rsync服务端检查备份并发送邮件 | | 配置与检查rsync服务端与客户端 vim/etc/rsyncd.conf
[rootbackup ~]#mkdir -p /backup/ #创键目录chown -R rsync.rsync /backup/ll -d /backup/检查改完了配置文件进行重启
systemctl restart rsyncd端口号为873
ch在客户端测试
rsync -av /etc/hostname rsync_backup172.16.1.41::backup --password-file/etc/rsync.passwords
sending incremental file list
hostname在备份服务器看是否传输过来
ll /backup/
cat /backup/hostname
4)书写备份脚本 书写脚根据企业任务需求合理高效进行书写脚本写脚本在多窗口化进行编写边测试整理这个的需要命令写成脚本引用变量名实现脚本万能功能–在相同类型机器上省时间省力气–当然注意整体磁盘空间内存信息在架构搭建初期各部门进行会议交流
在nf01这个客户端上vim /server/scripts/bak_conf.sh(写脚本编写脚本边进行测试)[rootnfs01 ~]#hostname -I[rootnfs01 ~]#hostname -I |awk {print $2}在存储服务器上对推送脚本进行测试
mkdir -p /backup/172.16.1.131
tar zcf /backup/172.16.1.131/etc.tar.gz /etc /var/spool/cron/
ll /backup/172.16.1.131/
tree /backup/(企业数量文件内容特别多的时候可以采用树状结构)
rsync -a /backup/ rsync_backup172.16.1.41::backup --password-file/etc/rsync.passwords
检查服务端是否推送过来
tree /backup/ 测试成功将脚本写入脚本
继续在客户端测试删除旧的客户端备份命令 [rootnfs01 ~]#find /backup/ -type f -name “*.tar.gz”
[rootnfs01 ~]#find /backup/ -type f -name “*.tar.gz” -mtime 7 |xargs rm -f
这里xargs后不支持别名 rm删文件会接提示 测试成功写入脚本
整个备份服务器脚本配置文件 脚本运行完进行测试
rm -fr /backup/
把服务端的ip可以进行删掉这里如果删除了backup目录备份服务器会报错 删掉客户端目录并tree 运行脚本并检查服务端是存在backup 未来我们只需要调整脚本备份内容目录ip即可
写定时任务: crontab -e 查看日志tail -f /var/log/cron
date
查看结果每2秒进行执行 查看服务端 说明测试没有问题可以在定时任务按照企业时间需求及追加目录进行配置
5服务端备份脚本调试 检查备份并清除旧的备份脚本
vim /server/scripts/check.sh
find /backup/ -type f -name *.tar.gz |xargs ls -lhd
find /backup/ -type f -name *.tar.gz |awk {print $NF,$5}
find /backup/ -type f -name *.tar.gz |awk
-F [ /] {print $(NF-1),NF,$5}让内容多一点将nfs01客户端脚本文件传入到web01服务器上
[rootnfs01~]#scp/server/scripts/bak_conf.sh 192.168.28.7:/server/scripts/ [rootnfs01 ~]#scp /etc/rsync.password 192.168.28.7:/etc
[rootnfs01 ~]#scp /var/spool/cron/root 192.168.28.7:/var/spoo l/cron/
检查传输到web01服务器内容
[rootweb01 ~]#ll /etc/rsync.password
[rootweb01~]#ll/etc/rsync.password /server/scripts/bak_conf.sh
[rootweb01 ~]#ll /etc/rsync.password /var/spool/cron/root
[rootweb01~]#head-30/etc/rsync.password /server/scripts/bak_conf.sh /var/spool/cron/root 在web01服务器运行bak_conf.sh脚本 在备份服务器进行检查如果成功会有172.16.1.7这一行
[rootbackup ~]#find /backup/ -type f -name “*.tar.gz” |awk -F ‘[ /]’ ‘{print $(NF-1),NF,$5}’ 测试统计结果命令并写入脚本
[rootbackup ~]#awk -F: ‘BEGIN{print “用户名”,“UID”}{print 1 , 1, 1,3}’ /etc/passwd 完成脚本清除旧的脚本统计结果并将结果发送到邮件 [rootbackup /backup]#sh /server/scripts/check.sh
如果在邮箱中没有见到信息在垃圾邮箱查找被邮箱系统屏蔽掉了 配置定时任务
crontab -e 然后观察日志文件及邮箱信息
[rootbackup /backup]#tail -f /var/log/cron
最后将结果追加到result.txt
6增加校验功能
简单理解校验测试知识理解
检查传输中是否有变化及检查的那个文件md5 检查多个检验文件findmd5
#给/etc/下面所有的文件创建MD5保存到指定文件中
find /etc/ -type f | md5sum etc-all.md5
#进行校验
md5sum -c etc-all.md5
#修改/etc/下某个文件比如增加个#
vim /etc/rsyncd.conf
#进行校验
md5sum -c etc-all.md5
#只显示md5
异常的文件
md5sum --quiet -c etc-all.md5具体应用
客户端备份的时候生成备份创建指纹信息
安全防护措施
给命令和较为固定的配置设置md5定期校验
作图为清理旧的备份服务端脚本 rsync2022年漏洞
影响的版本3.2.5版本验证不足情况
检查rsync版本 检查yum源是否有新的rsync版本在装yum最新版本之前我们自己的rsync比它最新的版本很低 去官网找rsync包下载 Samba
下载 Sambarsync (samba.org)
https://rsync.samba.org/ 二进制别人已经弄好了我们只需要进行解压使用但是不一定能打开 添加链接描述 https://download.samba.org/pub/rsync/binaries/ 这里的版本还不能进行满足下载这里最 新的rsync包看是否还能进行满足 ##下载最新的rsync包 wget https://download.samba.org/pub/rsync/binaries/centos-7.9-x86_64/latest.tar.gz [rootbackup ~]#tar tf latest.tar.gz
[rootbackup ~]#tree -F usr/ usr/ └── local/ ├── bin/ │ ├── rsync* │ └── rsync-ssl* └── share/ ├── doc/ │ ├── COPYING │ ├── NEWS.md │ └── README.md └── man/ ├── man1/ │ ├── rsync.1 │ ├── rsyncd.conf.5 │ └── rsync-ssl.1 └── man5/ 会发现还是满足不了
yum源不行软件包不行官网二进制也不行我们使用最本制的方式编译安装这里有3.2.7的版本
通过yum update rsync升级查到的版本还是低但是升级说不定修复了补丁说不来厂商已经发布升级补丁修复漏洞方式不方便升级版本的时候使用补丁
还是要进行改源代码–》回到本质还是编译
还可以通过漏洞扫描工具针对具体漏洞具体处理