将服务器A的文件共享给服务器B。
首先切换至root用户:
su
1.在服务器A和B上安装nfs服务
sudo apt-get update
sudo apt-get install -y nfs-kernel-server
2.在服务器A设置要共享的文件夹
通过vim编辑配置文件:
sudo vim /etc/exports
vim知识补充:
① 使用Vim编辑文件时,默认处于命令模式。此模式下可以用方向键或者h\j\k\l移动光标,还可以对文件进行复制、粘贴、替换、删除等操作。
② 在输入模式下,Vim 可以对文件执行写操作。使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
③ 编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式下输入“:”,此时 Vim 窗口的左下方出现“:”符号,就可以输入相关指令操作了
-
:w 保存但不退出
-
:wq 保存并退出
-
:q 退出
-
:q! 强制退出,不保存
-
:e! 放弃所有修改,从上次保存文件开始再编辑命令历史
切换至输入模式,在最后一行添加需要共享的文件目录:
/home/mountpoint *(rw,sync,no_root_squash,no_subtree_check)
rw :挂接此目录的客户端对该共享目录具有读写权限
sync :资料同步写入内存和硬盘
no_root_squash :root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限
修改完毕后,先使用ECS返回普通模式,然后在普通模式输入“:”进入命令模式,继续输入“wq”+【回车键】实现文件的保存与退出。
3.在服务器A重启nfs服务
重启之后配置才会生效:
sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart
可以输入以下命令查看共享的文件目录:
showmount -e
4.在服务器B进行挂载验证
showmount -e 服务器A的ip
sudo mount -t nfs 服务器A的ip:服务器A需要共享的文件夹 挂载到服务器B的对应文件夹
5.在服务器A上设置共享文件夹的权限
为了在服务器B上操纵挂载文件夹,需要对服务器A的共享文件夹设置权限:
chmod 777 服务器A的共享文件夹
我在服务器B上想通过python代码在挂载文件夹中新建文件时,出现Permission denied错误,无法创建。尝试了①通过xftp直接在挂载文件夹中新建文件以及②通过python代码在其他位置创建文件都可以成功,所以猜测是挂在文件夹的权限出了问题。于是通过xtp连接服务器A,勾选了包含子目录选项,再试,成功。