ubantu文件同步服务器,Ubuntu 14.04 LTS 实现双机文件同步lsync和rsync

本文介绍了如何在两台运行Ubuntu 10.04的Linux主机上配置rsync和lsyncd,以实现文件的实时同步。首先,分别在服务端和客户端安装rsync和lsyncd。然后,服务端配置rsyncd.conf,设置[data]模块,定义同步路径和日志格式;客户端配置lsyncd.conf.xml,指定源文件目录和目标服务器信息。启动服务后,客户端的lsyncd会监听文件变化并使用rsync同步到服务端。当遇到错误如‘ERROR: chroot Failed’时,检查目录权限和存在性。关闭服务时,通过ps和kill命令找到并结束进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.环境

准备两台linux主机,操作系统为ubuntu10.04:

一台作为rsync的服务端,假设ip为192.85.1.9.

一台作为rsync的客户端,假设ip为192.85.1.112.

二.安装rsync和lsync

rsync能够实现文件从客户端指定目录传输到服务端指定目录,但不监控和实时功能.

lsync采用inotify原理监听某一目录,如果目录内发生增、删、改、利用rsync协议自动同步到多个服务器.inotify已并入ubuntu内核.

rsync和lsync都可通过系统软件包管理器安装,可以通过下载编译源文件安装:rsync:http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gzlsync:

系统软件包管理器默认安装两程序到/usr/bin目录下.

服务端不用安装lsync.

三.配置

1.服务端配置

打开/etc/rsyncd.conf文件(若没有则新建),输入以下内容:

[data]

path =/usr/lib/oracle/xe/data

uid =root

gid =root

address= 192.85.1.112

logformat= %t %a %m %f %b

syslogfacility = local3

说明:

[data]是路径别名,在配置客户端lsync时用于替代目标路径,即path,path是服务端存放同步文件的目录路径,可以按需要修改.

uid,gid是目标目录的所属者,如果不设则默认为-2(nobody).

address指定监听的ip,这个ip指客户端地址,端口默认为873.

logformat指定日志文件格式.

syslogfacility取决于rsync的启动方式,daemon方式则设为local3.

2.客户端配置

客户端rsync同样需要在/etc/下新建rsyncd.conf文件,但不用写入任何东西.

配置lsync配置文件lsyncd.conf.xml,文件地址可以用locate命令查找.

下面是设置好的文件内容:

logfile指定 lsyncd的日志文件.

binary指定rsync程序路径.

Callopts标签下的子标签都是设置调用rsync时使用的参数,具体参数函数可以参考附录,%r会被替代成-r

directory指定目录,其中source子标签指定源文件目,该目录存放需要同步的文件;target标签指定rsync服务端地址和目标目录路径,data即服务端配置文件中[]的内容

系统默认的内容有很多类似的行,表示注释信息或关闭的配置项.

四.启动服务

服务端:

终端输入/usr/bin/rsync–-daemon –config=/etc/rsyncd.conf启动rsync.

服务启动后可用psauxf|grep 'rsync'查看进程,若出现类似以下信息则说明启动成功:

5f6a3d06ab160dcf1c3b1130573c424b.png

客户端:

终端输入/usr/bin/rsync--daemon启动rsync.

输入/usr/bin/lsyncd--conf/etc/lsyncd.conf.xml启动lsync.

再在可以在客户指定

可能出现的错误:

ERROR: chroot Failed

rsyncerror: error starting client-server protocol (code 5) at main.c(1522)[receiver=3.0.3]

原因:服务器端的目录不存在或无权限,创建目录并修正权限可解决问题.

五.关闭服务

似乎没有直接关闭的方法,但能用psaux命令查出进程号,使用kill命令关闭进程

psaux:

e59ef128e39730460c8f4a96789df979.png

kill2247

kill2281

六.附件

rsync命令(部分)

-v,--verbose 详细模式输出

-q,--quiet 精简输出模式

-c,--checksum 打开校验开关,强制对文件传输进行校验

-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-r,--recursive 对子目录以递归模式处理

-R,--relative 使用相对路径信息

-b,--backup创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。

--backup-dir将备份文件(如~filename)存放在在目录下。

-l,--links 保留软链结

-L,--copy-links 想对待常规文件一样处理软链结

--delete删除那些DST中SRC没有的文件

--force强制删除目录,即使不为空

--exclude=PATTERN指定排除不需要传输的文件模式

--include=PATTERN指定不排除而需要传输的文件模式

--exclude-from=FILE排除FILE中指定模式的文件

--include-from=FILE不排除FILE指定模式匹配的文件

--version打印版本信息

--address绑定到特定的地址

--config=FILE指定其他的配置文件,不使用默认的rsyncd.conf文件

--port=PORT指定其他的rsync服务端口

--blocking-io对远程shell使用阻塞IO

-stats给出某些文件的传输状态

--progress在传输时现实传输过程

--log-format=formAT指定日志文件格式

--password-file=FILE从FILE中得到密码

参考资料

http://www.itlearner.com/article/4605

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

<think>好的,我现在需要帮助用户在Ubuntu 22.04上配置NFS服务器进行文件共享。首先,我要回忆一下相关的步骤,可能需要参考用户提供的引用内容。根据引用3,安装步骤包括安装nfs-kernel-server、创建共享目录、配置exports文件,然后重启服务。用户的问题是如何设置NFS服务器,所以需要详细说明每一步。 首先,安装软件包。用户提到使用sudo apt-get install nfs-kernel-server,这应该是正确的。需要确保用户先更新系统,可能还需要执行sudo apt-get update,如引用3中的步骤。所以第一步应该是安装更新。 接下来是创建共享目录。引用3中使用了/mnt/nfs_share,并赋予权限777,这可能涉及到安全风险,但用户可能为了方便测试而这样做。需要建议用户创建目录,并设置合适的权限,比如使用chmod命令。 然后是配置/etc/exports文件。需要解释如何编辑这个文件,添加共享目录的路径访问权限。例如,引用3中的例子是/mnt/nfs_share *(rw,sync,no_subtree_check),这里*表示允许所有客户端访问,可能需要提醒用户根据实际网络环境限制IP范围,比如192.168.1.0/24。 接下来,导出共享目录,使用exportfs -ra命令,然后重启nfs服务,如引用2中的sudo service nfs-kernel-server restart。这部分需要确保用户正确执行这些命令以使配置生效。 防火墙设置可能也是一个步骤,如果用户启用了UFW,需要允许NFS相关的端口,比如2049。引用中没有提到这点,但根据知识,可能需要补充,比如sudo ufw allow from 192.168.1.0/24 to any port nfs。 最后是客户端的挂载步骤,如引用4中的例子,使用mount -t nfs命令。需要告诉用户如何在客户端测试挂载,并验证是否成功。 还要注意检查是否有错别字,比如目录路径是否正确,权限设置是否合理。另外,引用5中的挂载命令使用了-nolock选项,可能需要解释这是为了避免锁定管理器的问题,特别是在某些环境中。 总结步骤应该是:安装软件、创建目录、配置exports、导出并重启服务、配置防火墙、客户端挂载。每个步骤需要清晰说明,并提醒用户注意事项,比如安全性问题,权限设置等。可能还需要生成相关问题,比如如何设置自动挂载,如何排除连接问题,或者如何配置更安全的权限。</think>### 在 Ubuntu 22.04 中配置 NFS 服务器进行文件共享 #### 1. 安装 NFS 服务器软件包 首先更新软件包列表并安装 `nfs-kernel-server`: ```bash sudo apt-get update sudo apt-get install -y nfs-kernel-server ``` 此软件包包含 NFS 服务器所需的核心组件[^3]。 #### 2. 创建共享目录 创建一个目录作为共享存储空间,例如 `/mnt/nfs_share`,并设置宽松权限(仅限测试环境): ```bash sudo mkdir -p /mnt/nfs_share sudo chmod 777 /mnt/nfs_share # 生产环境建议更严格的权限 ``` #### 3. 配置 NFS 共享规则 编辑配置文件 `/etc/exports`,定义共享目录的访问权限: ```bash sudo nano /etc/exports ``` 添加以下内容(示例允许所有客户端读写): ```plaintext /mnt/nfs_share *(rw,sync,no_subtree_check) ``` - `rw`:允许读写 - `sync`:确保数据同步写入磁盘 - `no_subtree_check`:禁用子目录检查以提高性能 若需限制访问范围,可将 `*` 替换为特定 IP 或子网(如 `192.168.1.0/24`)。 #### 4. 应用配置并重启服务 导出共享配置并重启 NFS 服务: ```bash sudo exportfs -ra # 重新加载exports配置 sudo systemctl restart nfs-kernel-server # 重启服务生效[^2] ``` #### 5. 配置防火墙(如启用) 若使用 UFW 防火墙,需开放 NFS 相关端口: ```bash sudo ufw allow from 192.168.1.0/24 to any port nfs # 按实际子网修改 ``` #### 6. 客户端挂载 NFS 共享 在客户端执行以下命令挂载共享目录(替换服务器 IP 路径): ```bash sudo mkdir -p /mnt/nfs_client # 创建本地挂载点 sudo mount -t nfs -o nolock 192.168.50.184:/mnt/nfs_share /mnt/nfs_client ``` - `-t nfs`:指定文件系统类型 - `-o nolock`:禁用文件锁(避免某些环境下的兼容性问题)[^5] 验证挂载是否成功: ```bash df -h | grep nfs ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值