博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rsync服务的基本部署
阅读量:6279 次
发布时间:2019-06-22

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

1. 关于rsync

rsync是常用的一个文件同步备份软件。该软件不仅在Linux上可以部署使用,同样在windows系统中也可安装。

本文主要是举一个最基本的部署例子,适用于没接触过的朋友,急于寻找一款用于同步备份的软件。
大概也普及以下rsync的作用:

  • rsync可以当做cp命令,用于本地文件的备份:
    [root@backup ~]# rsync /etc/hosts /tmp/[root@backup ~]# ll /tmp/hosts-rw-r--r-- 1 root root 349 Nov 26 17:03 /tmp/hosts
  • 同样可以当做scp命令,用于局域网内文件的备份同步:
    [root@backup ~]# rsync /etc/hosts 172.16.1.31:/tmp/root@172.16.1.31's password:
  • 另外,在删除大量文件或单一大文件时也可以使用:
    [root@backup tmp]# mkdir /null[root@backup tmp]# rsync -avz --delete /null/ /tmp/oldboy_dir/
  • 最后,为凑个数,还能当ls命令来用:
    [root@backup tmp]# rsync /tmp/

    2. 部署前需要知道的

  • rsync适用于数据量不是特别大的环境。
  • rsync可以实现全量备份和增量备份。
  • 默认使用的端口是tcp 873,所以如果网络管理严格的话,需要放行一下。
  • 推荐部署的是通过守护进程来启动,所以下文也是介绍这种方式。
  • 远程备份同步有Pull和Push两种方式,推荐从客户端Push到服务端的方式。

    3. 部署步骤

    A)服务端的部署

    step1.先确认一下服务器上有没有安装吧。。。

    [root@backup ~]# rpm -qa|grep rsyncrsync-3.0.6-12.el6.x86_64

    显然已经安装了,没有的话就yum。

    step2.编写rsync配置文件
    这个文件原本是不存在,需要自己创建一下。
    vim /etc/rsyncd.conf
    以下是配置文件内容,可以直接拷贝:

    uid = rsync                                                      #进程使用的用户名gid = rsync                                                      #进程使用的组名use chroot = no                         max connections = 200                               #最大连接数timeout = 300                                                  #超时断开时间(秒)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 = 172.16.1.0/24                  #允许连接的白名单hosts deny = 0.0.0.0/32                             #禁止连接的黑名单,建议只开白名单,这行注释掉auth users = rsync_backup                       #认证用户名,连接的时候用secrets file = /etc/rsync.password     #连接使用的密码,写在那个文件里了[bak_pics]                                                       #以下两个是模块的信息,用来分别备份不同内容comment = "backup pics"                         #这只是一个备注path = /bak_pics                                           #备份的服务端路径[bak_codes]comment = "backup codes"path = /bak_codes

    step3.创建rsync服务管理用户

    [root@backup ~]# useradd rsync -s /sbin/nologin -M

    step4.创建备份目录并修改目录权限

    [root@backup ~]# mkdir /bak_pics[root@backup ~]# chown rsync:rsync /bak_pics

    step5.创建rsync用户认证文件

    echo "rsync_backup:P@ssw0rd" >/etc/rsync.passwordchmod 600 /etc/rsync.password

    文件里的内容很简单,rsync_backup就是配置文件里的那个认证用户名,冒号后面的就是密码了。

    step6.以守护进程的方式启动rsync服务

    [root@backup tmp]# rsync --daemon[root@backup tmp]# netstat -lntup|grep rsynctcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1593/rsync

B)客户端部署

step1.创建认证文件
echo 'P@ssw0rd' >> /etc/rsync.password
chmod 600 /etc/rsync.password
step2.进行客户端免交互传输数据测试
rsync -avz /etc/hosts rsync_backup@172.16.1.2::bak_pics --password-file=/etc/rsync.password

这就都部署完了,剩下的就是善后优化工作。这些另写一篇吧,已经12点了,准备睡觉。

几点注意的地方

  1. 关于使用的命令格式
    对于本文的部署方式,其实使用时有两种命令格式:
    rsync [OPTION...] SRC... [USER@]HOST::DEST
    rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
    !!!要注意一下,这点切记
    如果SRC路径最后有/,比如/tmp/只会拷贝/tmp下的内容,而tmp这个目录不会跟着一起过去;
    如果SRC路径最后没有/,比如/tmp,则会连同tmp这个目录本身一起拷贝过去。
  2. 关于守护进程方式
    有些文章中提到了使用xinetd这种超级守护进程的方式管理。个人并不推荐,有兴趣的可以研究下。
  3. 关于实际应用
    一般应用的时候,要不就是配合定时任务使用,实现定期的同步;要不就是配合inotify或者sersync,实现实时同步。
    另外,还有个排除的参数--exclude 和 --exclude-from值得使用(类似tar命令的排除)
  4. 关于清空文件的问题
    为了避免不必要的麻烦,请操作谨慎再谨慎!!!尤其是在使用--delete命令来进行完全同步的时候。
    (就是想要实现客户端删了文件,服务端内也同步删除文件那种)
    因为,如果搞错了,可能会用空目录覆盖了一个还有用的目录,导致文件全部丢失。
  5. 推荐多看man手册,里面的具体操作命令比较全。

真的睡了。话说,我觉着这个文件编辑器不是很好用啊,排版上有些不智能。

转载于:https://blog.51cto.com/4254317/2047047

你可能感兴趣的文章
关于FreeBSD的CVSROOT的配置
查看>>
基于RBAC权限管理
查看>>
基于Internet的软件工程策略
查看>>
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>
PHP问题 —— 丢失SESSION
查看>>
Java中Object类的equals()和hashCode()方法深入解析
查看>>
数据库
查看>>
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>