Skip to content

Commit c145eb7

Browse files
authored
Merge pull request #332 from jimcat8/main
Error text content modification and syntax correction
2 parents c20aed3 + d91398f commit c145eb7

File tree

1 file changed

+61
-49
lines changed

1 file changed

+61
-49
lines changed

docs/guides/backup/mirroring_lsyncd.zh.md

Lines changed: 61 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,78 @@
1-
# Rocky Linux - 镜像解决方案 - lsycnd
1+
---
2+
title: 镜像解决方案 - lsyncd
3+
author: Steven Spencer
4+
contributors: Ezequiel Bruni, tianci li
5+
updated: 2021-10-29
6+
---
27

3-
## 准备工作
8+
# 镜像解决方案 - `lsyncd`
49

5-
在继续阅读这篇指南之前,您需要准备或了解以下的内容:
10+
## 必备条件
11+
12+
以下是您需要了解并准备本指南的所有内容:
613

714
* 运行 Rocky Linux 的计算机。
815
* 熟练从命令行修改配置文件。
916
* 了解如何使用命令行编辑器(本文使用 vi,但您也可以使用其他编辑器)。
1017
* 您需要 root 用户访问权限,并且最好以 root 用户身份登录终端。
11-
* SSH 公私密钥对
12-
* Fedora 的 EPEL 仓库
18+
* SSH 公钥私钥对
19+
* Fedora 的 EPEL 软件仓库(也叫存储库)
1320
* 熟悉事件监视程序接口 *inotify*
1421
* 可选:熟悉 *tail*
1522

16-
# 简介
23+
## 简介
1724

18-
如果您正在寻找一种在计算机之间自动同步文件和文件夹的方法,lsyncd 是一个相当不错的选择。对初学者来说唯一的缺点是什么?您必须通过命令行和文本文件配置所有内容
25+
如果您正在寻找一种在计算机之间自动同步文件和文件夹的方法,`lsyncd` 是一个相当不错的选择。对初学者来说唯一的缺点是什么?那就是您必须通过命令行和文本文件配置所有内容
1926

2027
即便如此,它还是值得任何系统管理员认真学习。
2128

22-
*lsyncd* 的最佳描述来自其 man 手册页。稍微解释一下,lsyncd 是一种轻量级实时镜像解决方案,相对易于安装。它不需要新的文件系统或块设备,也不会影响本地文件系统的性能。简而言之,它镜像文件。
29+
*lsyncd* 的最佳描述来自其 man 手册页。稍微解释一下,lsyncd 是一个相对易于安装的轻量级实时镜像解决方案,它不需要新的文件系统或块设备,也不会影响本地文件系统的性能。简而言之,它的作用就是对文件进行镜像。
30+
31+
lsyncd 监视本地目录树事件监视器接口(inotify)。它在几秒钟内聚合和组合事件,然后产生一个(或多个)进程来同步更改,默认进程为`rsync`
2332

24-
lsyncd 监视本地目录树事件监视器接口(inotify)。它在几秒钟内聚合并组合事件,然后生成一个(或多个)进程来同步更改。默认情况下,进程是 rsync。
33+
在本文中,带有原始文件的系统称为“master(主)”,而与之同步的系统将称为“target(目标)”。实际上,使用`lsyncd`可以完全镜像一个服务器,只要非常仔细地指定要同步的目录和文件,这是非常棒的!
2534

26-
在本文中,带有原始文件的系统称为“master(主)”,而与之同步的系统将称为“target(目标)”。实际上,,使用 lsyncd 通过非常仔细地指定要同步的目录和文件是有可能完全镜像服务器。真是太好了!
35+
对于远程同步,您还需要设置 [Rocky Linux SSH 公钥私钥对](../security/ssh_public_private_keys.md)。此处的示例使用 SSH(默认端口 22)。
2736

28-
对于远程同步,您还需要设置 [Rocky Linux SSH 公私钥对](../security/ssh_public_private_keys.md)。此处的示例使用 SSH(端口 22)
37+
对于这个工具程序,您可以在[官方项目地址](https://github.com/axkibe/lsyncd)找到最新的版本信息
2938

30-
# 安装 lsycnd
39+
## 安装 lsyncd
3140

32-
实际上有两种方法可以安装 lsyncd。此处两种方法都介绍,但首选的方法是从源代码安装。这种安装相对容易,而且几乎不需要依赖项。RPM 往往会稍微落后于源码包。换言之,此处给出两种方法,自行选择
41+
实际上有两种方式可以安装 lsyncd,此处两种方式都介绍,我们想给您两个选择,让您选择。RPM安装方式的版本通常都会比源代码版本落后,但是它易于安装。在撰写本文时,RPM方式安装的包版本号是2.2.2-9,而源代码版本号现在是2.2.3
3342

34-
## 安装 lsycnd —— RPM 方法
43+
## 安装 lsyncd —— RPM 方式
3544

36-
安装 RPM 版本相对容易。您唯一需要首先安装的是 Fedora 的 EPEL 软件库。只需一条命令即可完成此操作:
45+
安装RPM版本是比较容易的,您需要首先安装的是来自Fedora的EPEL软件库。这可以用一个命令来完成。
3746

38-
`dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm`
47+
`dnf install -y epel-release`
3948

4049
然后,只需安装 lsyncd,任何缺少的依赖项都将与它一起安装:
4150

4251
`dnf install lsyncd`
4352

44-
就这样!
53+
将服务设置为开机自启动,但现在不启动:
54+
55+
`systemctl enable lsyncd`
56+
57+
RPM安装方式就是这么简单!
4558

46-
## 安装 lsycnd —— 源码方法
59+
## 安装 lsyncd —— 源代码方式
4760

48-
从源码安装并不复杂,只需遵循本指南,相信您能很快完成一切事情
61+
从源码安装并不复杂,只需按照本指南操作,您很快就可以启动并运行
4962

50-
### 安装依赖
63+
### 安装依赖项
5164

52-
我们需要安装下面的一些依赖项:lsyncd 本身需要的依赖项,以及从源码构建软件包所需要的依赖项。在 Rocky Linux 机器上使用此命令,以确保您具有所需的依赖项。如果要从源码进行构建,则最好安装所有开发工具
65+
我们需要安装下面的一些依赖项:一些是`lsyncd`本身需要的,还有一些是从源代码构建软件包所需要的。在 Rocky Linux 机器上使用此命令,以确保您具有所需的依赖项。如果要从源码进行构建,则最好安装所有的开发工具
5366

5467
`dnf groupinstall 'Development Tools'`
5568

5669
以下是 lsyncd 本身及其构建过程所需的依赖项:
5770

5871
`dnf install lua lua-libs lua-devel cmake unzip wget rsync`
5972

60-
### 下载 lsycnd 并构建
73+
### 下载 lsyncd 并构建
6174

62-
接下来,获取源码
75+
接下来,下载源码
6376

6477
`wget https://github.com/axkibe/lsyncd/archive/master.zip`
6578

@@ -71,7 +84,7 @@ lsyncd 监视本地目录树事件监视器接口(inotify)。它在几秒钟
7184

7285
`cd lsyncd-master`
7386

74-
And then:
87+
然后:
7588

7689
`mkdir build`
7790

@@ -81,19 +94,17 @@ And then:
8194

8295
现在执行以下命令:
8396

84-
```
97+
```bash
8598
cmake ..
8699
make
87100
make install
88101
```
89102

90103
完成后,您应该已经安装了 lsyncd 二进制文件并可以在 */usr/local/bin* 中使用。
91104

92-
# lsycnd Systemd 服务
93-
94-
两种安装方法都不会创建用于重启时启动 lsyncd 的 systemd 服务。我们希望能够做到这一点,因为如果您正在镜像文件,肯定不希望因忘记手动启动服务而使镜像处于脱机状态。
105+
## lsyncd Systemd 服务
95106

96-
这对于任何系统管理员来说都是非常尴尬的
107+
使用RPM安装方法时,已经为您安装了systemd服务,但如果您选择从源代码安装,则需要创建systemd服务。虽然您可以在没有systemd服务的情况下启动二进制文件,但我们希望确保它在开机自启动时“确实”启动了。否则,机器重新启动时将停止同步工作,如果您忘记了再次启动lsycnd,这很可能会让任何系统管理员感到非常尴尬
97108

98109
创建 systemd 服务并不复杂,从长远来看,它将为您节省大量时间。
99110

@@ -105,7 +116,7 @@ make install
105116

106117
该文件的内容应为:
107118

108-
```
119+
```bash
109120
[Unit]
110121
Description=Live Syncing (Mirror) Daemon
111122
After=network.target
@@ -121,6 +132,7 @@ PIDFile=/run/lsyncd.pid
121132
[Install]
122133
WantedBy=multi-user.target
123134
```
135+
124136
现在,将刚才创建的文件安装到正确的位置:
125137

126138
`install -Dm0644 /root/lsyncd.service /usr/lib/systemd/system/lsyncd.service`
@@ -129,15 +141,15 @@ WantedBy=multi-user.target
129141

130142
`systemctl daemon-reload`
131143

132-
# 配置
144+
## `lsyncd` 配置
133145

134-
无论您选择何种方法安装 lsyncd,都需要配置文件*/etc/lsyncd.conf*。下一部分将讲解如何构建一个简单的配置文件,并测试它。
146+
无论您选择何种方式安装 lsyncd,都需要对配置文件进行配置*/etc/lsyncd.conf*。下一部分将讲解如何构建一个简单的配置文件,并测试它。
135147

136-
## 测试配置示例
148+
## 用于测试的简单配置
137149

138-
下面是一个简单配置文件的示例,它将 */home* 同步到另一台机器。目标机器是一个本地 IP 地址:*192.168.1.40*
150+
下面是一个简单配置文件的示例,它将 */home* 同步到另一台机器。目标机器是一个私有的 IP 地址:*192.168.1.40*
139151

140-
```
152+
```bash
141153
settings {
142154
logfile = "/var/log/lsyncd.log",
143155
statusFile = "/var/log/lsyncd-status.log",
@@ -164,28 +176,28 @@ sync {
164176

165177
对该文件进行分解解释:
166178

167-
* 服务启动时将自动创建 "logfile" 和 "statusFile"。
168-
* "statusInterval" 是写入 statusFile 之前要等待的秒数
179+
* 服务启动时将自动创建 "logfile" 和 "statusFile"两个参数里的文件
180+
* "statusInterval" 是写入 statusFile 之前的等待的秒数
169181
* "maxProcesses" 是允许 lsyncd 产生的进程数。事实上,除非您在超级繁忙的计算机上运行此进程,否则一个进程就足够了。
170182
* 在 sync 部分,"default.rsyncssh" 表示通过 ssh 使用 rsync。
171183
* "source=" 是要从中同步的目录路径。
172184
* "host=" 是要同步到的目标计算机。
173-
* "excludeFrom=" 告诉 lsyncd 排除的文件位置。它必须存在,但可以为空。
174-
* "targetdir=" 是要将文件发送到的目标目录。在大多数情况下,它将等于 source 值,但并非总是如此。
185+
* **"excludeFrom="告诉 lsyncd 排除的文件位置。它必须存在,而且非常重要。**
186+
* "targetdir=" 要将文件发送到目标计算机的目录位置。在大多数情况下,它等于 source 值,但并非总是如此。
175187
* 然后,"rsync ="部分是运行 rsync 的选项。
176188
* 最后,"ssh ="部分指定了正在监听目标计算机上的 SSH 端口。
177189

178-
如果要添加多个目录进行同步,则需要为每个目录重复整个"sync"部分,包括所有开始括号和结束括号。
190+
**如果要添加多个目录进行同步,则需要为每个目录重复整个"sync"部分,包括所有开始括号和结束括号。**
179191

180192
## lsyncd.exclude 文件
181193

182194
如前所述,"excludeFrom"文件必须存在,所以现在创建它:
183195

184196
`touch /etc/lsyncd.exclude`
185197

186-
如果要在计算机上同步 /etc 文件夹,那么需要忽略其中许多文件和(或)目录。只需将需要忽略的文件和目录简单地列在文件中,每行一个,如下所示:
198+
如果要在计算机上同步 /etc 文件夹,但是需要忽略一些文件或者目录,那么您只需将需要忽略的文件和目录简单地列在文件中,每行一个,如下所示:
187199

188-
```
200+
```bash
189201
/etc/hostname
190202
/etc/hosts
191203
/etc/networks
@@ -210,23 +222,23 @@ sync {
210222

211223
`tail /var/log/lsyncd-status.log`
212224

213-
假设一切正确,进入到 `/home/[user]` 目录,其中 `[user]` 是计算机上的用户,并使用 *touch* 在其中创建新文件。
225+
假设一切正确,进入到 `/home/[user]` 目录,其中 `[user]` 是Rocky Linux上的普通用户(UID大于等于1000),并使用 *touch* 在其中创建新文件。
214226

215227
`touch /home/[user]/testfile`
216228

217-
现在转到目标计算机,查看文件是否显示。如果显示,那么一切都会按预期进行。将 lsyncd.service 设置为在引导时使用以下命令
229+
现在转到目标计算机,查看文件是否显示。如果显示,那么一切都会按预期进行。将 lsyncd.service 设置为开机自启动使用以下命令
218230

219231
`systemctl enable lsyncd`
220232

221233

222-
## 谨记
234+
## 注意
223235

224236
每当您将一组文件或目录同步到另一台计算机时,请仔细考虑它对目标计算机的影响。如果您回到上面示例中的 **The lsyncd.exclude File**,您能想象如果将 */etc/fstab* 同步会发生什么情况?
225237

226-
对于新手,*fstab* 是用于在任何 Linux 机器上配置存储驱动器的文件。磁盘和标签几乎可以肯定是不同的。下次重新引导目标计算机时,它很可能无法完全引导
238+
对于新手,*fstab* 是用于在任何 Linux 机器上配置存储驱动器的文件。磁盘和标签几乎可以肯定是不同的。下次重新启动目标计算机时,它很可能无法正常启动
227239

228-
# 总结与参考
240+
lsyncd是单向同步的工具。
229241

230-
lsycnd 是用于在计算机之间进行目录同步的强大工具。如您所见,安装起来并不难,并且很容易维护。不能要求更多。
242+
# 总结
231243

232-
您可以去[官方网站](https://github.com/axkibe/lsyncd)了解更多关于 lsyncd 的信息
244+
lsycnd 是用于在计算机之间进行目录同步的强大工具。如您所见,安装起来并不难,并且很容易维护。不能要求更多了

0 commit comments

Comments
 (0)