Ubuntu 22.04 下安装配置rsync

Posted chenglei1208

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu 22.04 下安装配置rsync相关的知识,希望对你有一定的参考价值。

默认已经安装

一、服务器端设置

1.ubuntu  22.04默认已安装rsync,rsync服务默认不是启动的,我们要修改下面的文件。

sudo vim /etc/default/rsync

如下:RSYNC_ENABLE 改为true
RSYNC_ENABLE=true

2.修改配置文件

sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc

3.查看一下配置文件内容(下面是配置文件的解释 不需要操作  直接去4)

sudo cat /etc/rsyncd.conf

解释如下


# 最大连接数
max connections = 10
# pid文件的存放位置
pidfile = /var/run/rsyncd.pid
# 支持max connections参数的锁文件
lock file = /var/lock/rsyncd.lock
# rsync启动时欢迎信息页面文件位置(文件内容自定义),非必须
# motd file = /etc/rsyncd.motd
# 用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件。这个文件也可以不要,但是安全性上可能会有些问题。
secrets file = /etc/rsyncd.secrets
# 日志文件位置,启动rsync后自动产生这个文件,无需提前创建
log file = /var/log/rsync.log
# 记录传输文件日志
transfer logging = yes
# 日志文件格式
log format = %t %a %m %f %b
# 剔除某些文件或目录,不同步
# exclude = lost+found/
# 超时时间
timeout = 300
# 某些情况下避免中文乱码
# charset = GB18030
# 默认为yes,修改为no时增加对目录文件软连接的备份,允许 chroot,提升安全性,客户端连接模块,首先 chroot 到模块 path 参数指定的目录下,chroot 为 yes 时必须使用 root 权限,且不能备份 path 路径外的链接文件
use chroot = yes
# 设置不需要压缩的文件
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
# 设置rsync运行权限为root
uid = root
# 设置rsync运行权限为root
gid = root

# 模块名
[docker]
# 注释
comment = Mini Docker
# rsync服务端数据目录路径
path = /home/docker
# 白名单,允许的主机列表
hosts allow = 10.6.6.0/24
# 黑名单,禁止的主机列表
hosts deny = *
# 设置rsync服务端文件是否只读
read only = no
# 是否显示rsync服务端资源列表
list = yes
# 模块验证的用户名称,可使用空格或者逗号隔开多个用户名,必须和 rsyncd.secrets中的用户名对应
auth users = sworld
# 忽略错误
# ignore errors

sudo cat /etc/rsyncd.conf

解释如下
# sample rsyncd.conf configuration file

# GLOBAL OPTIONS

#motd file=/etc/motd #登录欢迎信息
#log file=/var/log/rsyncd #日志文件
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid

#指定rsync发送日志消息给syslog时的消息级别,常见的消息级别是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。默认值是daemon。
#syslog facility=daemon

#自定义tcp选项,默认是关闭的
#socket options=

#以下是模块信息,我们可以创建多个模块
# MODULE OPTIONS

[ftp]

comment = public archive #模块描述
path = /var/www/pub #需要同步的路径
use chroot = yes #默认是yes|true,如果为true,那么在rsync在传输文件以前首先chroot到path参数指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要root权限,并且不能备份指向外部的符号连接指向的目录文件。
# max connections=10 #最大连接数
lock file = /var/lock/rsyncd #指定支持max connections参数的锁文件。
# the default for read only is yes...
read only = yes #只读选项
list = yes #客户请求时可用模块时是否列出该模块
uid = nobody #设定该模块传输文件时守护进程应该具有的uid
gid = nogroup #设定该模块传输文件时守护进程应具有的gid,此项与uid配合可以确定文件的访问权限
# exclude = #用来指定多个由空格隔开的多个模式列表,并将其添加到exclude列表中。这等同于在客户端命令中使用--exclude来指定模式,不过配置文件中指定的exlude模式不会传递给客户端,而仅仅应用于服务器。一个模块只能指定一个exlude选项,但是可以在模式前面使用"-"和"+"来指定是exclude还是include #这个我的理解是排除目录中不需同步的文件
# exclude from = #可以指定一个包含exclude模式定义的文件名
# include = #与exclude相似
# include from = #可以指定一个包含include模式定义的文件名
# auth users = #该选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系。如果"auth users"被设置,那么客户端发出对该模块的连接请求以后会被rsync请求challenged进行验证身份这里使用的 challenge/response认证协议。用户的名和密码以明文方式存放在"secrets file"选项指定的文件中。默认情况下无需密码就可以连接模块(也就是匿名方式)
# secrets file = /etc/rsyncd.secrets #该文件每行包含一个username:password对,以明文方式存储,只有在auth users被定义时,此选项才生效。同时我们需要将此文件权限设置为0600
strict modes = yes #该选项指定是否监测密码文件的权限,如果该选项值为true那么密码文件只能被rsync服务器运行身份的用户访问,其他任何用户不可以访问该文件。默认值为true
# hosts allow = #允许的主机
# hosts deny = #拒绝访问的主机
ignore errors = no #设定rsync服务器在运行delete操作时是否忽略I/O错误
ignore nonreadable = yes #设定rysnc服务器忽略那些没有访问文件权限的用户
transfer logging = no #使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中
# log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes. #设定日志格式
timeout = 600 #超时设置(秒)
refuse options = checksum dry-run #定义一些不允许客户对该模块使用的命令选项列表
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz #告诉rysnc那些文件在传输前不用压缩,默认已设定压缩包不再进行压缩

4.创建自己的配置文件

1.备份一份原文件
sudo cp /etc/rsyncd.conf /etc/rsyncd.conf.bak
2.修改配置文件
sudo vi /etc/rsyncd.conf

如下 提示一下:# GLOBAL OPTIONS下面为全局配置 # MODULE OPTIONS 下面是模块配置
# sample rsyncd.conf configuration file

# GLOBAL OPTIONS

#motd file=/etc/motd
log file=/var/log/rsyncd
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
syslog facility=daemon
#socket options=

# MODULE OPTIONS

[rsync_bk] # 定义同步的模块名 名字可以任意命名,只要客户端的rsync命令一致

comment = public archive
path = /home/rsync_bk #指定路径,如果没有这个目录自己建。
use chroot = no #是否锁定用户主目录
# max connections=10 #最大连接数
lock file = /var/lock/rsyncd
# the default for read only is yes...
read only = yes
list = yes
uid = nobody #系统用户 用来启动rsnc的用户 可以单独设置一个 例如:rsync用户
gid = nogroup #系统用户组
# exclude =
# exclude from =
# include =
# include from =
auth users = zhangsan #rsync连接时的虚拟用户名zhangsan,要和客户端rsync的命令一致
secrets file = /etc/rsyncd.passwd #这里是保存密码的地方,如果屏蔽掉就不用密码了 需要单独建立这个文件
strict modes = yes
hosts allow = 10.10.201.0/24 #运行的客户端ip或IP网段
# hosts deny = #禁止的IP或者网段
ignore errors = yes
ignore nonreadable = yes
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

5.创建虚拟用户密码文件

sudo vim /etc/rsyncd.secrets
如下 一行一个 用户名:密码
zhangsan:123
  1. 给虚拟用户密码文件授权(600)重要
sudo chmod 600 /etc/rsyncd.secrets
  1. 查看rsync运行端口
netstat  -anplt  | grep 873

二、客户端端设置

1.客户端安装rsync (默认已安装不要任何设置)

sudo apt install rsync

2.







以上是关于Ubuntu 22.04 下安装配置rsync的主要内容,如果未能解决你的问题,请参考以下文章

Unbuntu22.04安装教程以及Unbuntu下C++环境的配置

ubuntu 22.04源码编译安装boost库

ubuntu 22.04源码编译安装boost库

Ubuntu22.04 安装 ssh

Ubuntu22.04深度学习GPU环境配置:Nvidia CUDA 11.7cuDNN 8.5 详细解读(20220910)

Ubuntu22.04深度学习GPU环境配置:Nvidia CUDA 11.7cuDNN 8.5 详细解读(20220910)