「rsyncd.conf」- 配置选项详解

以服务模式运行「rsync」(LAUNCHING THE RSYNC DAEMON)

以服务模式启动 rsync 是通过在 rsync 启动时指定–daemon 选项。

如果要使用 chroot、绑定 1024 以下的端口号、设置文件的所有权,则 rsync 守护进程必须以 root 权限运行。否则的话,只需要有读写相应的数据、日志、锁定文件的权限就可以了。

可以使用 inetd 来运行 rsync,也可以以独立守护进程来运行 rsync,或者通过远程 shell 来访问 rsync。如果以守护进程的方式启动 rsync,只需要使用”rsync –daemon”命令。

当通过 inetd 来运行 rsync 时
首先,需要在 /etc/services 中配置如下行:

rsync 873/tcp

然后,需要在 /etc/inetd.conf 配置如下行:

rsync stream tcp nowait root /usr/bin/rsync rsyncd –daemon

最后,向 inetd 发送 HUP 信号来告诉 inetd 重新读取配置文件。

注意:你不应该向 rsync 守护进程发送 HUP 信号来强制 rsync 重新读取 rsyncd.conf 配置文件。该文件在每个客户端连接中会重新读取。

仅用于全局参数

文件中的第一个参数([module]头之前)是全局参数。Rsync 还允许使用“[global]”模块名称来指示一个或多个全局参数节的开始(global 必须小写)。

您也可以在配置文件的全局部分包含任何模块参数,在这种情况下,提供的值将覆盖该参数的默认值。

您可以在参数值中使用对环境变量的引用。字符串参数将尽可能延迟 %VAR% 引用(当在程序中使用该字符串时),从而允许在 rsync 连接时使用设置的变量,例如 RSYNC_USER_NAME。从配置文件读取时,非字符串参数(如真 / 假设置)会被展开。如果环境中不存在变量,或者一系列字符不是有效的引用(例如未配对的百分号),则原始字符将保持不变。这有助于向后兼容性和安全性(例如,将不存在的 %VAR% 扩展为路径中的空字符串可能会导致非常不安全的路径)。将 % 插入值的最安全方法是使用 %%。

motd file
该选项允许你指定一个“”message of the day”“来向每个连接上的客户端展示。类似于 Linux 中的 /etc/motd 的功能。
默认值:无默认值。
通常是一些站点信息或者一些其他内容。可以在命令行选项中使用–dparam=motdfile=FILE 来覆盖该选项的设置。

pid file
该参数告诉 rsync 守护进程将 PID 写入指定的文件中。如果文件已经存在,rsync 守护进程将终止,而不是覆盖文件。
可以在命令行选项中使用–dparam=pidfile=FILE 来覆盖该选项的设置。

port
通过指定该值来覆盖 rsync 守护进程监听的默认端口号。
默认值:873
如果守护进程是由 inetd 运行的,那么会忽略此选项的配置。
可以在命令行选项中使用–port 来覆盖该选项的设置。

address
通过指定该值来覆盖 rsync 守护进程监听的默认 IP 地址。
如果守护进程是由 inetd 运行的,那么会忽略此选项的配置。
可以在命令行选项中使用–address 来覆盖该选项的设置。

socket options
这个参数可以为喜欢最大限度地调整系统的人们提供无尽的乐趣。您可以设置各种套接字选项,这可能会使传输更快(或更慢!)。请阅读 setsockopt()系统调用的手册页,以获取有关可能设置的一些选项的详细信息。默认情况下,不设置特殊的套接字选项。
这些设置也可以通过–sockopts 命令行选项指定。

listen backlog
当守护程序侦听连接时,您可以覆盖默认的 backlog 值。
默认值:5

read only
该参数用于决定是否允许客户端上传文件。如果 read only = true,则客户端的上传操作将会失败;如果 read only = false,则可以进行上传,但前提是守护进程端的文件权限允许它们。
默认值:true

注意:”auth users”参数可以基于每个用户覆盖该设置。

write only
该参数用于决定是否允许客户端下载文件。如果 write only = true,则客户端的下载操作将会失败;如果 write only = false,则可以进行下载,但前提是守护进程端的文件权限允许它们。
默认值:false