使用NFS实现不同设备上的文件同步,以下使用三台虚拟机简述实现流程。
虚拟机目录及规划如下:
主机 | 用途 | 系统版本 |
---|---|---|
192.168.186.130 | nfs_server | debian12 |
192.168.186.131 | nfs_client | debian12 |
192.168.186.132 | nfs_client | debian12 |
NFS-Server
在192.168.186.130上安装NFS服务器
安装NFS
在安装NFS时会创建用户nobody和用户组nogroup
apt-get update -y
#安装文件编辑工具
apt-get install -y nano net-tools
#安装nfs-server
apt-get install -y nfs-kernel-server
#配置共享目录并设置权限
mkdir -p /mnt/shared
chown nobody:nogroup /mnt/shared
chmod 755 -R /mnt/shared
配置NFS导出设置
nano /etc/exports
#添加以下一行到/etc/exports以允许任意主机访问共享目录
/mnt/shared *(rw,sync,no_subtree_check)
#导出共享目录
exportfs -a
#设置nfs服务开机自启并启动nfs服务
systemctl enable nfs-kernel-server
systemctl restart nfs-kernel-server && systemctl status nfs-kernel-server
NFS-Client
在192.168.186.131及192.168.186.132上安装NFS客户端
安装客户端
apt-get update -y
#安装文件编辑工具
apt-get install -y nano net-tools
#安装nfs客户端
apt-get install -y nfs-common
#创建挂载点并挂载NFS共享目录到挂载点
mkdir -p /app/sharedfiles
mount 192.168.186.130:/mnt/shared /app/sharedfiles
#验证是否挂载成功
df -h | grep /app/sharedfiles
#成功结果应如下
# 192.168.186.130:/mnt/shared 2.6G 879M 1.6G 37% /app/sharedfiles
#持久化挂载,确保客户端重启后,NFS共享目录能自动挂载,将挂载配置写到/etc/fstab中
nano /etc/fstab
#将以下一行添加到/etc/fstab文件末尾
192.168.186.130:/mnt/shared /app/sharedfiles nfs defaults 0 0
#重新加载配置
systemctl daemon-reload
#重启
reboot
#查看挂载关系
df -h | grep /app/sharedfiles
#正常结果如下
# root@debian:~# df -h | grep /app/sharedfiles
# 192.168.186.130:/mnt/shared 2.6G 879M 1.6G 37% /app/sharedfiles
测试文件同步
- 在客户端新建文件
##192.168.186.131(客户端1)
touch /app/sharedfiles/131_client_test_file
##192.168.186.132(客户端2)
touch /app/sharedfiles/132_client_test_file
- 在服务器端及客户端查看文件是否存在
##192.168.186.130(服务器端)
ls -l /mnt/shared
# root@debian:~# ls -l /mnt/shared
# total 0
# -rw-r--r-- 1 nobody nogroup 0 Jul 26 10:52 131_client_test_file
# -rw-r--r-- 1 nobody nogroup 0 Jul 26 10:54 132_client_test_file
##192.168.186.131(客户端1)
ls -l /app/sharedfiles
# root@debian:~# ls -l /app/sharedfiles/
# total 0
# -rw-r--r-- 1 nobody nogroup 0 Jul 26 10:52 131_client_test_file
# -rw-r--r-- 1 nobody nogroup 0 Jul 26 10:54 132_client_test_file
##192.168.186.132(客户端2)
ls -l /app/sharedfiles
# root@debian:~# ls -l /app/sharedfiles/
# total 0
# -rw-r--r-- 1 nobody nogroup 0 Jul 26 10:52 131_client_test_file
# -rw-r--r-- 1 nobody nogroup 0 Jul 26 10:54 132_client_test_file