设为首页 收藏本站
查看: 630|回复: 0

[经验分享] rsync服务的基本部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-12-6 11:23:42 | 显示全部楼层 |阅读模式

1. 关于rsync

rsync是常用的一个文件同步备份软件。该软件不仅在Linux上可以部署使用,同样在windows系统中也可安装。
本文主要是举一个最基本的部署例子,适用于没接触过的朋友,急于寻找一款用于同步备份的软件。
大概也普及以下rsync的作用:

    rsync可以当做cp命令,用于本地文件的备份:

    [iyunv@backup ~]# rsync /etc/hosts /tmp/
    [iyunv@backup ~]# ll /tmp/hosts
    -rw-r--r-- 1 root root 349 Nov 26 17:03 /tmp/hosts

    同样可以当做scp命令,用于局域网内文件的备份同步:

    [iyunv@backup ~]# rsync /etc/hosts 172.16.1.31:/tmp/
    root@172.16.1.31's password:

    另外,在删除大量文件或单一大文件时也可以使用:

    [iyunv@backup tmp]# mkdir /null
    [iyunv@backup tmp]# rsync -avz --delete /null/ /tmp/oldboy_dir/

    最后,为凑个数,还能当ls命令来用:

    [iyunv@backup tmp]# rsync /tmp/

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

    [iyunv@backup ~]# rpm -qa|grep rsync
    rsync-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服务管理用户

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

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

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

    step5.创建rsync用户认证文件

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

    文件里的内容很简单,rsync_backup就是配置文件里的那个认证用户名,冒号后面的就是密码了。
    step6.以守护进程的方式启动rsync服务

    [iyunv@backup tmp]# rsync --daemon
    [iyunv@backup tmp]# netstat -lntup|grep rsync
    tcp        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点了,准备睡觉。
几点注意的地方

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

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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421224-1-1.html 上篇帖子: 解决centos7 yum安装MySQL rpm包出现conflict problem 下篇帖子: Linux系统巡检shell脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表