博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rsync备份服务器搭建学习笔记
阅读量:4589 次
发布时间:2019-06-09

本文共 6416 字,大约阅读时间需要 21 分钟。

rsync数据同步、备份

定时:rsync +cron定时任务
实时:rsync +sersync(inotify)

官方文档

  • 远程拷贝 ssh带的scp命令(加密的拷贝)
  • 本地拷贝 cp
  • 删除功能 rm

Some of the additional features of rsync are: rsync额外特性

  • support for copying links, devices, owners, groups, and permissions 支持拷贝特殊文件,如链接、设备等
  • exclude and exclude-from options similar to GNU tar 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能
  • a CVS exclude mode for ignoring the same files that CVS would ignore
  • can use any transparent remote shell, including ssh or rsh 可通过ssh、rsh加密传输(rsync不加密)
  • does not require super-user privileges
  • pipelining of file transfers to minimize latency costs
  • support for anonymous or authenticated rsync daemons (ideal for mirroring) 支持匿名或认证的进程模式传输

rsync可以是一个网络服务(port、socket)

rsync命令是客户端命令

rsync三种工作模式

  • 第一种工作模式:local
rsync -avz /root/aaa /tmp/  --->cprsync -avz --delete /root/aaa/ /tmp/    --->rm
  • 第二种工作模式:remote shell ,一般配合ssh、key免密钥传输,结合定时任务
rsync -avzP -e 'ssh -p 22' /opt/ root@192.168.105.135:/tmp/     pushrsync -avzP -e "ssh -p 22" root@192.168.105.135:/tmp/ /opt/ 带斜线代表获取的是tmp下的文件    pullrsync -avzP -e "ssh -p 22" root@192.168.105.135:/tmp /opt/  不带斜线代表获取的是tmp这个目录   pull
  • 第三种工作模式:rsync daemon 内网不需要,加密性能有损失 vpn(pptp、openvpn,ipsec)
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

关键语法说明:

1,-avz相当于-vzrtopgDl,表示同步时文件和目录属性不变。
2,-P显示同步的过程,可以用--progress替换
3,-e 'ssh -p 22',表示通过ssh的通道传输数据,-p 22可省略
4,root@192.168.105.135:/tmp/ 远程的主机系统用户、地址、路径
5,/opt本地的路径
6,同步一个文件里有变化的内容部分,先比较再同步

参数选项 描述
-v --verbose 详细模式输出,传输时的进度等信息
-z --compress 传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩
-a --archive 归档模式,表示以递归方式传播文件,并保持所有文档属性,相当于-rlptgoD
-r --recursive 对子目录以递归模式,即目录下的所有目录都同样传输
-t --times 保持稳健时间信息
-o --owner 保持文件属主信息
-p --perms 保持文件权限
-g --group 保持文件属组信息
-P --progress 显示同步的过程及传输时的进度等信息
-D --devices 保持设备文件信息
-l --links 保留软链接
--delete 无差异同步(危险)
--exclude 排除单个文件a
排除多个文件{a,b}、{a..d}
排除多个文件--exclude-from
--partial 大文件断点续传
--bwlimit --bwlimit=100限速

企业应用场景:

  1. 两台服务器之间数据同步
  2. 把所有客户端服务器数据同步到备份服务器
  3. rsync结合inotify的功能做实时的数据同步rsync+inotify或sersync

生产场景集群架构服务器备份方案:

cron+rsync 全网服务器数据备份解决方案提出及负责实施

  1. 针对公司重要数据备份混乱状况和领导提出备份全网数据的解决方案
  2. 通过本地打包备份,然后rsync结合inotify应用把全网数据统一备份到一个固定存储服务器,然后存储服务器上通过脚本检查并报警管理员备份结果
  3. 定期将IDC机房的数据备份到公司内部不同的服务器上,防止机房地震及火灾问题导致数据丢失

rsync优点:

1,增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物)

2,远程shell通道模式还可以加密(ssh)传输,socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务

rsync缺点:

  1. 大量小文件同步的时候,比对时间较长,有时候,rsync进程可能会终止
  2. 同步大文件,10G这样的大文件有时也会出问题,终端,未完整同步完时,会变成一个隐藏文件,可以通过断点续传等参数实现传输 。一次性远程拷贝可以用scp

Rsync备份实战

配置rsync服务端步骤

1,配置服务器,查看当前rsync安装包和版本号

rsync --version     rsync-3.0.6-12.el6.x86_64

2,vim /etc/rsyncd.conf 添加配置文件

rsync配置文件官网:

#配置文件详解,更多参数查看man rsyncd.conf#Rsync server#created by hejian 19:50 2019-3-17##rsyncd.conf start##uid = rsync     //客户端具备的权限(不存在,需要创建)gid = rsyncuse chroot = no     //安全相关max connections = 2000   //客户端连接数timeout = 600       //超时pid file = /var/run/rsyncd.pid      #进程ID文件lock file = /var/run/rsync.lock     #锁文件log file = /var/log/rsyncd.log      #日志文件ignore errors           #忽略错误read only = false   #可读写list = false        #不可以远程列表hosts allow = 192.168.105.0/24hosts deny = 0.0.0.0/32auth users = rsync_backup   //虚拟用户secrets file = /etc/rsync.password   //存放用户账号密码的文件#####################################[backup]    //模块调用#comment = backup by hejian 19:50 2019-3-17path = /backup   //共享目录[hejian]path = /hejian

3,创建rsync用户及共享目录/backup,并给目录赋予权限

useradd rsync -s /sbin/nologin -Mid rsyncmkdir /backupchown -R rsync.rsync /backup/

4,创建密码文件

echo "rsync_backup:123" > /etc/rsync.passwordchmod 600 /etc/rsync.password

5,启动rsync服务并查看

rsync --daemonlsof -i :873  COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME  rsync   1647 root    3u  IPv4  12479      0t0  TCP *:rsync (LISTEN)  rsync   1647 root    5u  IPv6  12480      0t0  TCP *:rsync (LISTEN)  netstat -tunlp|grep rsync  tcp        0      0 0.0.0.0:873                 0.0.0.0:*                     LISTEN      1647/rsync            tcp        0      0 :::873                      :::*                          LISTEN      1647/rsync    ss -tunlp|grep rsync    tcp    LISTEN     0      5                     :::873                  :::*        users:(("rsync",1647,5))  tcp    LISTEN     0      5                      *:873                   *:*        users:(("rsync",1647,3))   ps -ef|grep rsync  root       1647      1  0 20:11 ?        00:00:00 rsync --daemon  root       1660   1505  0 20:12 pts/0    00:00:00 grep --color=auto rsync

6,加入开机自启动

echo "rsync --daemon" >>/etc/rc.local  cat /etc/rc.local

rsync客户端配置步骤

1,创建密码文件,并修改权限

echo "123" > /etc/rsync.password (与服务端密码保持一致,免密登陆)chmod 600 /etc/rsync.password(与服务端密码权限保持一致)ll /etc/rsync.password

2,发送文件rsync(push或pull都是从客户端来操作)

(push)rsync -avz /backup/ rsync_backup@10.0.0.41::backup/ --password-file=/etc/rsync.password(pull)rsync -avz  rsync://rsync_backup@10.0.0.41:873/backup/ /backup/ --password-file=/etc/rsync.passwordecho $? = 0 就代表程序运行是正确的

排除推送

rsync -avz --exclude=a /root/test/ rsync_backup@10.0.0.41::backup/ --password-file=/etc/rsync.password

排错

#Rsync server#created by hejian 19:50 2019-3-17##rsyncd.conf start##uid = rsyncgid = rsyncuse chroot = nomax connections = 2000timeout = 600pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.logignore errorsread only = falselist = falsehosts allow = 192.168.0.0/24hosts deny = 0.0.0.0/32auth users = rsync_backupsecrets file = /etc/rsync.password#####################################[backup]comment = backup by hejian 19:50 2019-3-17path = /backup

虚拟机快照

rsync实战测试准备环境,修改IP,修改主机名,修改主题参数颜色,备份主要配置文件等

客户端报错

报错一:

[root@lamp01:/tmp]# rsync -avz /tmp/ raync_backup@192.168.105.136::backup --password-file=rsync.passwordrsync: failed to connect to 192.168.105.136: No route to host (113)rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]

排错:服务端防火墙开启了

报错二:

[root@lamp01:/tmp]# rsync -avz /tmp/ raync_backup@192.168.105.136::backup --password-file=rsync.passwordrsync: could not open password file "rsync.password": No such file or directory (2)  Password:  @ERROR: auth failed on module backuprsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

第一个错误是路径写错了--password-file=/etc/rsync.password

第二个错误是服务端密码文件和客户端写反了,服务端写账号和密码,客户端只写密码;还有服务端的passwod文件都是root,backup文件用户是rsync;还有一个问题是拼错了一个单词导致一直验证失败

转载于:https://www.cnblogs.com/hejian2836/p/11110469.html

你可能感兴趣的文章
Flask框架学习笔记(API接口管理平台 V2.0)
查看>>
Java学习不走弯路教程(3.从文件内容查询开始)
查看>>
Android环境的搭建及Android Studio的安装
查看>>
12.18 Daily Scrum
查看>>
linux环形buff模拟多线程信号量操作
查看>>
一个基本的curl参数
查看>>
[LeetCode] 109. Convert Sorted List to Binary Search Tree_Medium tag: Linked List
查看>>
[Test] Easy automated testing in NodeJS with TestCafe
查看>>
[Node.js] CommonJS Modules
查看>>
杨辉三角
查看>>
一步步实现 仿制Android LOL多玩盒子(一) 概览
查看>>
Discuz 5.x/6.x/7.x投票SQL注入分析
查看>>
python 简单加密算法小计
查看>>
UWP应用使用SQLite库的方法
查看>>
脑认知动机学模型构建技术
查看>>
中文词性标注解释及句法分析标注解释
查看>>
机器学习-Matplotlib绘图(柱状图,曲线图,点图)
查看>>
Spring基于注解TestContext 测试框架使用问题
查看>>
方法区的回收
查看>>
变量声明和定义的区别
查看>>