rsync 后台服务模式

rsync 还有一种方式 就是 以后台的形式 运行,相当于作为服务端, 然后 让客户端 进行推或者拉

 

启动服务

rsync --daemon --config=/etc/rsyncd.conf

 

查看服务端 启动状况

# lsof -i:873

# ps aux |grep rsync

 

查重启 rsync 服务

pkill rsync 或者 kill ` cat /var/run/rsyncd.pid `

之后 启动服务: rsync --daemon --config=/etc/rsyncd.conf

 

192.168.1.6 centos1 作为daemon 端

192.168.1.7 centos2 作为客户端

首先 安装一下 这个命令

yum install -y rsync

 

 

在Daemon端 编写配置文件

vim /etc/rsyncd.conf

 

address = 192.168.1.6

port = 873

log file = /var/log/rsync.log

pid file = /var/run/rsync.pid

lock file = /var/run/rsync.lock

hosts allow = 192.168.1.0/24

 

[model]

path=/data/

use chroot = no

max connections = 100

read only = no

uid = rsync

gid = rsync

auth users = biaoge

secrets file = /etc/rsyncd.passwd

 

 

 

 

重点 说几个参数, readonly 就是只读,如果 client 只是拉取服务端数据 可以设置只读.

auth users 这个就是 要同步的一个虚拟用户

rsync -avzP aaa/biaoge@192.168.1.6::model --password-file=/etc/rsync.passwd

 

注意几个问题:

共享的path uid=rysnc 这个用户要 有权限 chown rsync /data

密码文件 一定要为600

chmod 600 /etc/rsyncd.passwd

chown -R rsync:rsync /data/

 

如果 有多个客户端可以指定 用空格分开 192.168.1.6 192.168.1.61 , 当然也可以指定一个网段

对于服务端的一些参数,可以通过 man rsyncd.conf 来查看

 

 

 

常见错误以及排查

防火墙,selinux 的问题。 一般 可以查看iptables selinux

 

[root@centos2 ~]# rsync -avzP biaoge@192.168.1.6::model 1111/

rsync: failed to connect to 192.168.1.6: No route to host (113)

rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6]

 

 

[root@centos2 ~]# rsync -avzP biaoge@192.168.1.6::model 1111/

rsync: failed to connect to 192.168.1.6: Connection refused (111)

rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6]

可能是服务端 没有开启服务

 

 

[root@centos2 ~]# rsync -avzP biaoge@192.168.1.6::model 1111/

@ERROR: access denied to model from unknown (192.168.1.7)

rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

权限 不够导致的错误,hostallow 是否可以包含 192.168.1.7

 

 

现在 更改配置 read only =yes

[root@centos2 ~]# rsync -avz bbb biaoge@192.168.1.6::model --password-file=/etc/rsync.passwd

sending incremental file list

ERROR: module is read only

rsync error: syntax or usage error (code 1) at main.c(866) [receiver=3.0.6]

rsync: read error: Connection reset by peer (104)

rsync error: error in rsync protocol data stream (code 12) at io.c(759) [sender=3.0.6]

 

服务端 model 下面的目录灭有了, 所有就不能拉取数据了。

[root@centos2 ~]# rsync -avzp biaoge@192.168.1.6::model 1111/ --password-file=/etc/rsync.passwd

@ERROR: chdir failed

rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

 

 

 

 

The --password-file option may only be used when accessing an rsync daemon.

rsync error: syntax or usage error (code 1) at main.c(1238) [receiver=3.0.6]

这种 错误 , 原因可能有很多。很有可能是命令敲错了。

 

在客户端 少写一个冒号

rsync -avz biaoge@192.168.1.6:model /tmp/ --password-file=/etc/rsync.passwd

rsync -avz rsync://biaoge@192.168.1.6:model /tmp/ --password-file=/etc/rsync.passwd

还有可能在Server 端执行了命令。

 

 

 

 

 

Client 端 进行推拉 模型

pull

rsync -avzP biaoge@192.168.1.6::model ccc/ --password-file=/etc/rsync.passwd

push

rsync -avzP aaa/ biaoge@192.168.1.6::model --password-file=/etc/rsync.passwd

这里 注意一点 ,如果 要推 push 的话,带斜线 和不带斜线是有区别的。带斜线是 把 aaa 下面的内容 全部推给服务器, 如果不带斜线,就是把 aaa 以及 aaa/ 下面所有内容推送到服务器上.


Client 还有 另外一种写法:

rsync -avz rsync://biaoge@192.168.1.6/model /tmp/ --password-file=/etc/rsync.passwd

 

rsync -avz /etc/hosts rsync://biaoge@192.168.1.6/model --password-file=/etc/rsync.passwd

 

 

 

 

 

 

在客户端 要 写一个crontab

*/1 * * * * rsync -aqzP biaoge@192.168.1.6::model /data/ --password-file=/etc/rsync.passwd

 

 

当然 文本 还没有说,如何排除 一些文件,即同步的时候,有一些 文件,文件夹是不需要同步的 ,这个时候 可以 用一些方法,排除文件,在之后的博客 我会写的.

 

 

 

分享快乐,留住感动 ,你的‘顶‘,是我最大的鼓励.

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在rsync服务模式中设置密码,可以通过以下步骤完成: 1. 在服务器端安装rsync软件。 2. 创建一个新的系统用户,并为该用户设置一个密码。例如,以下命令将创建一个名为“rsyncuser”的用户,并设置密码为“mypassword”。 ``` sudo useradd rsyncuser sudo passwd rsyncuser ``` 3. 编辑rsync服务配置文件“/etc/rsyncd.conf”,并添加以下内容: ``` uid = rsyncuser gid = rsyncuser use chroot = no max connections = 4 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log auth users = rsyncuser secrets file = /etc/rsyncd.secrets [my_module] path = /path/to/my_module read only = false list = false ``` 其中,“auth users”指定了允许登录的用户,“secrets file”指定了存储用户密码的文件,“my_module”指定了要同步的模块名称,“path”指定了要同步的目录路径,“read only”指定是否允许读取,“list”指定是否允许列出目录内容。 4. 创建一个包含用户名和密码的密码文件“/etc/rsyncd.secrets”,例如: ``` rsyncuser:mypassword ``` 5. 将密码文件的权限设置为只读: ``` sudo chmod 600 /etc/rsyncd.secrets ``` 6. 重启rsync服务: ``` sudo systemctl restart rsync ``` 现在,用户可以使用以下命令通过rsync服务模式进行同步: ``` rsync rsyncuser@server_ip::my_module /path/to/destination ``` 系统将提示输入密码,输入正确的密码后即可开始同步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值