温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

linux系统如何使用rsync进行文件同步

发布时间:2022-01-25 09:22:59 来源:亿速云 阅读:277 作者:小新 栏目:开发技术

小编给大家分享一下linux系统如何使用rsync进行文件同步,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。

linux系统如何使用rsync进行文件同步

一、准备工作

假设有两台服务器IP:114.22.168.67    — 作为rsync服务器     需要配置rsyncd.conf文件IP:46.94.110.123    — 作为rsync客户端     不需要配置rsyncd.conf,文件可为空

在服务器端创建/demo目录作为共享目录,复制一些测试文件到该目录中,用于进行测试。

二、安装及配置 rsync1、安装

服务器和客户端都要安装。Centos是默认安装了的

[root@localhost ~]#  yum -y install rsync

2、配置

服务端配置:rsync主要分为三个配置文件,分别是:rsyncd.conf              — 主配置文件rsyncd.secrets         — 密码文件rsyncd.motd             — 服务器信息文件

分别创建如下目录和文件:

[root@localhost1  ~]#  mkdir /etc/rsyncd[root@localhost1  ~]#  touch /etc/rsyncd/rsyncd.conf[root@localhost1  ~]#  touch /etc/rsyncd/rsyncd.secrets[root@localhost1  ~]#  chmod 600 /etc/rsyncd/rsyncd.secrets[root@localhost1  ~]#  touch /etc/rsyncd/rsyncd.motd

修改主配置文件:

[root@localhost1  ~]#   vi  /etc/rsyncd/rsyncd.conf

在文件中加入以下内容:

uid = rootgid = rootuse chroot = nomax connections = 5strict modes = yesport = 873pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.log

[backup]path = /democomment = This is a backupignore errorsread only = yeslist = nohosts allow = 46.94.110.123  127.0.0.1auth users = testsecrets file = /etc/rsyncd/rsyncd.secretsuid = root                                      #运行 rsync 守护进程的用户gid = root                                      #运行 rsync 守护进程的组use chroot = no                            #若为yes, 则需要root权限,并且在同步符号连接资料时只会同步名称不会同步内容。 max connections = 5                    #设置并发连接数,0表示无限制strict modes = yes                        #是否检查口令文件的权限port = 873                                     #端口,873为 rsync 默认端口pid file = /var/run/rsyncd.pid         #PID文件路径lock file = /var/run/rsync.lock        #锁文件路径log file = /var/log/rsyncd.log          #日志文件路径

#自定义模块名。模块是定义服务器哪个目录要被同步。格式:[name][backup]                                                                  path = /demo                                                             #同步目录的路径通过path指定comment = This is a backup                                     #定义注释说明的内容ignore errors                                                             #忽略一些IO错误read only = yes                                                         #是否允许客户端上传数据(双向同步),yes表示不允许  list = no                                                                     #客户端请求显示模块列表时,本模块名称是否显示,默认为yes(true)hosts allow = 46.94.110.123  127.0.0.1                    #设置哪些主机可以同步数据,多ip和网段之间使用空格分隔auth users = test                                                       #设置允许连接服务器的账户(自定义命名)secrets file = /etc/rsyncd/rsyncd.secrets                   #密码验证文件名

修改密码配置文件:

 [root@localhost1  ~]#   vi  /etc/rsyncd/rsyncd.secrets

输入内容:test:123456(用户名:密码  )(自定义设置)

test:123456

修改服务器欢迎信息(非必改项,可不设置):

 [root@localhost1  ~]#   vi  /etc/rsyncd/rsyncd.motd

加入自定义内容:

welcome to use the rsync services!

启动rsync服务:

以 –daemon 方式启动服务

[root@localhost2  ~]#   rsync –daemon –config=/etc/rsyncd/rsyncd.conf

#关闭服务:pkill rsync  

查看rsync服务是否启动:

[root@localhost2  ~]#   ps -ef|grep rsync[root@localhost2  ~]#   netstat -anlp | grep 873[root@localhost2  ~]#   lsof -i:873

设置开机启动 rsync服务

[root@localhost2  ~]#  echo “rsync –daemon –config=/etc/rsyncd/rsyncd.conf” >> /etc/rc.local

添加防火墙规则,允许873端口的数据访问

[root@localhost2  ~]#   firewall-cmd –permanent –add-port=873/tcp

#或者[root@localhost2  ~]#   vi /etc/sysconfig/iptables#添加以下内容-A INPUT -p tcp -m state –state NEW -m tcp –dport 873 -j ACCEPT

#重启防火墙[root@localhost2  ~]#  service iptables restart

 三、rsync文件同步  客户端配置:   安装

[root@localhost2 ~]#  yum -y install rsync

创建密码文件:

[root@localhost2  ~]#  touch /etc/rsyncd.secrets

输入密码:123456

[root@localhost2  ~]#  echo “123456” >  /etc/rsyncd.secrets[root@localhost2  ~]#  chmod 600 /etc/rsyncd.secrets

启用文件同步:

[root@localhost2  ~]#  rsync -avzP –delete –progress test@114.22.168.67::backup –password-file=/etc/rsyncd.secrets  /usr/backup上述命令的意思是用test用户登陆到114.22.168.67的rsync服务器上,把backup模块中指定的数据同步到本地的/usr/backup目录下。以下是上一条命令中的参数介绍:

-a  archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。     -r 是递归     -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;     -t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;

-r 是递归;

-l 是链接文件,意思是拷贝链接文件;

-p 表示保持文件原有权限;

-t 保持文件原有时间;

-g 保持文件原有用户组;

-o 保持文件原有属主;

-D 相当于块设备文件;

-z 传输时压缩;

-P 传输进度;

-v 传输时的进度等信息,和-P有点关系;

progress 是指显示出详细的进度情况

delete 是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

password-file=/etc/rsyncd.secrets

来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

四、客户端自动与服务器进行文件同步客户端配置:通过创建定时任务来完成同步

[root@localhost2  ~]#  crontab -e

加入以下内容:



    • rsync -avzP  delete  progress test@114.22.168.67::backup  password-file=/etc/rsyncd.secrets /usr/backup上述内容表示每分钟执行一次命令



重新启动定时任务:

[root@localhost2  ~]#  service crond restart

我们通过在服务端的 /demo 目录下创建新的文件,看看是否会同步到客户端的 /usr/backup 目录下。 等待一分钟后,文件成功同步到了客户端 ~

以上是“linux系统如何使用rsync进行文件同步”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI