美文网首页
数据备份:rsync工具

数据备份:rsync工具

作者: 写出你我 | 来源:发表于2018-11-30 20:43 被阅读0次

1、rsync不仅可以远程同步数据,类似于scp,而且可以在本地同步数据,类似于cp,但是不同于scp和cp的是,rsync不会覆盖以前的数据,而是判断已经存在的数据和新数据的差异,只有数据不同时,才会把不相同的部分覆盖。

2、使用的工作场景

        1)把所有客户数据数据同步到备份服务器(可以配合定时任务,实现每天定时备份)

        2)实时同步(解决存储服务器的单点故障问题),rsync结合inotify的功能做实时数据同步。

        3)用rsync清空/root/data文件,使用一个空文件取替换                                                                        #rsync --delete-before -d --progess --stats /root/empty /root/data

3、安装rsync    #yum -y install rsync                                                                                                      常用的参数:  -a归档模式              -r递归模式处理子目录               -v打印一些信息                                               -L对待常规文件一样处理软链接文件                                                                                               --delete删除DST中SRC没有的文件,时刻保证源文件最新                                                             --exclude 排除不需要传输的文件

4、rsync守护进程模式,包含服务器以及客户机,服务器上启动rsync的守护进程,客户机配置对应的用户名和密码,实现客户机到服务器的备份功能。                                                                  1)rsync 分为服务器端、客户端,服务器端搭建比客户端辛苦一些(也是很简单)。

  2)rsync 服务器是指以 deamon 方式运行 rsync 服务的服务器,需要打开 rsync deamon 和启动 xinetd 服务。默认端口873。

  3)rsync 客户端是发起 rsync 连接的服务器,安装rsync即可。

  4)rsync 客户端发起连接后,rsync 服务器会检查 rsync 客户端提交 rsync 服务器内建的户名和密码是否正确,如果通过认证检测,则开始文件传输,传输的过程是按要求先比对文件的大小、属性、权限、MD5值等信息,如果两端文件信息不一致,则按要求同步文件的区别块。

     5)rsync传输过程中经常会有报错,可以百度检查

服务器:

a、先在/etc下新建一个目录,并且新建几个必要的文件

mkdir /etc/rsyncd                                                                                                                      touch /etc/rsyncd/rsyncd.conf                                                                                                  touch /etc/rsyncd/rsyncd.passwd         #户名称与密码以冒号分隔,多个用户名和密码可以多行  chmod 600 /etc/rsyncd/rsyncd.passwd

b、编辑配置文件

#vim /etc/rsyncd/rsync.conf

port=873                                                                                                                                      log file=/var/log/rsync.log                                                                                                            pid file=/var/run/rsync.pid                                                                                                address=192.168.7.131                #服务器监听的ip地址

[test]                                                                                                                                    path=/root/rsync                               #客户端他不过来的文件保存地址                                          use chroot=true                               #如果传输文件中含有软连接文件,true改为false                  max connections=4                         #最大连接数                                                                            read only=no                                 #如果未true,则不会上传到该模块指定的路径下                  list=true                                          #当查看服务器上提供了哪些目录时是否列出来,no比较安全  uid=root                                                                                                                                gid=root                                                                                                                                    auth users=test                                    #指定传输时要使用的用户名                                              secrets file=/etc/rsyncd/rsync.passwd           #指定密码文件,确定该文件的权限一定为600        host allow=192.168.7.129                  #可以是多台主机,用空格空开即可

c、启动服务      # rsync --daemon --config=/etc/rsyncd/rsyncd.conf                                                                       # cat /var/log/rsync.log   #通过日志文件查看rsync服务是否启动

客户端

a、创建密码文件,/etc/rsyncd/rsyncd.pass,并修改为 600 权限

           # touch /etc/rsyncd/rsyncd.pass        #这里只需要输入密码即可                                                     # chmod  600/etc/rsyncd/rsyncd.pass                                                                                            /etc/rsyncd/rsyncd.pass 其内密码需要和服务端内/etc/rsyncd/rsyncd.pass指定用户的密码保持一致

b、客户端向服务端传输文件,如果是 873 端口,可以把 --port 去掉

        rsync -avL --delete --progress /var/log/access.log test@192.168.1.100::test  --password-file=/etc/rsyncd/rsyncd.pass --port=873

c、

c、从服务端拉取文件

#拉取整个目录

rsync -avL --delete --progress  --password-file=/etc/rsyncd/rsyncd.pass --port=873  test@192.168.7.131::test  /var/log

#拉取单个文件

rsync -avL --delete --progress  --password-file=/etc/rsyncd/rsyncd.pass --port=873 test@192.168.7.131::logs/a.test  /var/log

相关文章

网友评论

      本文标题:数据备份:rsync工具

      本文链接:https://www.haomeiwen.com/subject/oxohcqtx.html