1.rsync远程同步服务

2022-01-17 分类:rsync-lsyncd-sersync 阅读(1207) 评论(2)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.rsync基本概述

1.为什么要做备份

因为数据非常的重要,需要保证数据不丢失,即使数据丢失了也能快速恢复。

2.备份应该怎么做

完全备份,全备,效率低下、占用空间
增量备份,增备,效率较高、节省空间
本地备份,本地服务器坏了,数据丢失
远程备份,本地服务器坏了,数据还在

3.备份通常都用什么工具

本地备份 cp
远程备份 scp rsync

4.什么是rsync

rsync简称远程同步,可以实现不同主机之间的同步,同时支持增量备份和全量备份。
rsync官方地址: http://rsync.samba.org
rsync监听端口: 873
rsync运行模式: C/S

2.rsync传输模式

本地传输:和cp差不多

[root@yum-server ~]# rsync -avz ./ /rsync ####a相当于cp的rp保持属性不变、v显示执行过程、z传输过程压缩,加快传输速度。

远程传输:可以在机器之间相互传输数据###依赖于ssh协议,系统root的密码

[root@yum-server ~]# rsync -avz /rsync root@10.0.0.98:/tmp/#需要输入密码
[root@yum-server ~]# scp -rp /rsync/ test@10.0.0.98:/home/test/test
###rsync的/rsync和/rsync/传输的内容是不一样的

守护进程:将rsync运行为一个服务,对外提供服务。(暴露端口)

服务端:    守护进程服务为rsyncd

第一步配置文件:

uid = rsync###指定服务运行的用户
gid = rsync###指定服务运行的用户组
port = 873###定义rsync备份服务的网络端口号
fake super = yes###将rsync虚拟用户伪装成为一个超级管理员用户
use chroot = no###和安全相关的配置
max connections = 200###最大连接数 同时只能有200个客户端连接到备份服务器
timeout = 300###超时时间(单位秒)
pid file = /var/run/rsyncd.pid####记录进程号码信息 1.让程序快速停止进程 2. 判断一个服务是否正在运行
lock file = /var/run/rsync.lock###锁文件
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 = "backup dir by oldboy"##描述信息
path = /backup###模块中配置参数 指定备份目录

第二步创建配置文件指定的目录

第三步创建配置文件指定的进程用户

第四步创建虚拟用户密码文件并将密码文件权限修改为600注意:文件内容为用户名加:加密码

第五步启动服务并设置永久开机自启动 服务端设置完毕

客户端

创建密码文件

执行命令进行推拉操作

[root@yum-cline ~]# rsync -avz /etc/hosts rsync_backup@10.0.0.99::backup --password-file=/etc/passwd

3.rsync选项说明

-a ###归档传输模式,等于-tropgDL
-v ###显示传输过程
-z ###传输时进行压缩
-r ###传输目录
-t ###保持文件时间信息
-o ###保持文件属主信息
-p ###保持文件权限
-g ###保持文件属组信息
-l ###保留软连接
-P ###显示同步过程及传输时的进度等信息
-D ###保持设备文件信息
-L ###保留软连接指向的目标文件
-e ###使用的信道协议,指定代替rsh的shll程序
--exclude=PATTERN ###指定排除不需要传输的文件
--exclude-from=file ###文件名所在的目录
--bwlimit=100 ###限速
--delete ###让目标目录和源目录数据保持一致

4.客户端定时备份脚本思路

客户端

#!/bin/bash
source /etc/profile
Path=/backup
Host=$(hostname)
Addr=$(ifconfig ens33 |awk '/inet /{print $2}')
Time=$(date +%F)
HostaddrT=${Host}_${Addr}_${Time}
#将客户端信息推送至服务端————SFY
#首先创建客户端备份目录
mkdir -p $Path/$HostaddrT
#将需要打包的重要文件打包备份
tar czf $Path/$HostaddrT/back$HostaddrT.tar.gz /etc/hosts /etc/passwd /etc/resolv.conf
#将文件制作指纹信息
md5sum $Path/$HostaddrT/* >$Path/$HostaddrT/clinet.check
#将打包的信息推送至服务端
rsync -avz $Path/ rsync_backup@10.0.0.102::backup --password-file=/root/rsync.passwd

服务端

#!/bin/bash
source /etc/profile
Path=/backup
Time=$(date +%F)
#校验客户机文件是否异常--SFY创建
md5sum -c $Path/*$Time/clinet.check >$Path/resule_$Time
#将邮件发送给管理员
mail -s "硕神牛逼 $Time" 2795802440@qq.com < $Path/resule_$Time

服务端配置邮件信息

启动服务为postfix
配置文件 /etc/mail.rc
set bsdcompat     
set from=2195802440@qq.com      发件人
set smtp=smtps://smtp.qq.com:465   发件的smtp地址
set smtp-auth-user=2195802440@qq.com    认证用户和发件人一致
set smtp-auth-password=dpcdigh    授权码
set smtp-auth=login                        无需修改,直接添加
set ssl-verify=ignore                        无需修改,直接添加
set nss-config-dir=/etc/pki/nssdb/           无需修改,直接添加

PS:定时备份不能确保数据的实时性,那如何确保实时性呢?这就需要看一下sersync和lsyncd了

欢迎新朋友你的到来!
已经有2 条评论抢在你前面了~
昵称
邮箱
网站
取消回复
  1. 张三

    alert(“社会我阳哥666”)

    #1
    回复

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1