服务器之间的文件挂载(Linux、Windows)
文件挂载,是指加载文件系统到指定的加载点,比如:将服务器A上的某个目录与服务器B上的指定路径进行映射,使服务器B通过访问指定路径就能获取到服务器A上的目录详情,此时,A服务器被称为服务端,B服务器被称为客户端;A服务器上被映射的目录被成为挂载源,B服务器上的指定路径被称为挂载点
一、mount命令用法
1、Liunx上挂载文件的语法
- 挂载:
mount [可选项] 挂载源 挂载点
- 取消挂载:
umount 挂载点
2、常用可选项
- -t:指定挂载源的文件系统类型,不指定的话Linux会自动检测
常见的文件系统类型:
- 光盘或光盘镜像:iso9660
- DOS fat16文件系统:msdos
- Windows 9x fat32文件系统:vfat
- Windows NT ntfs文件系统:ntfs
- Mount Windows文件网络共享:smbfs
- UNIX(LINUX) 文件网络共享:nfs
- Windows共享文件夹:cifs
- -o:指定挂载的额外选项,比如读写权限、同步/异步、用户名密码等,各选项用英文逗号分隔,如果不指定,则使用默认值
二、Linux挂载Windows目录
例子:
192.168.40.100
是一台Windows服务器,共享文件192.168.40.101
是一台Linux服务器,挂载文件- 共享
192.168.40.100
的D:\shares
文件夹,然后在192.168.40.101
上将这个共享目录挂载到/opt/mount/fromwindows
目录下
1、共享Windows的目录(在192.168.40.100上操作)
选择要共享的目录,右键选择属性
选择共享栏,点击共享
选择共享的用户,点击共享
2、Linux挂载命令(在192.168.40.101上操作)
mount-t cifs -ousername="user",password="******",uid=root,gid=root //192.168.40.100/shares
- -t cifs:指定了挂载源是Windows的共享文件
- -o username=“Administrator”,password=“123456”,uid=root,gid=root:指定了访问挂载源时的用户名和密码,以及挂载点的目录权限属于root组的root用户
三、Linux挂载Linux目录
Linux共享文件需要使用NFS协议,这是一个基于TCP/IP传输的网络文件系统协议,依赖于RPC机制,需要安装nfs-utils、rpcbind软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持
例子:
192.168.40.102
是一台Linux服务器,共享文件192.168.40.101
是一台Linux服务器,挂载文件- 共享
192.168.40.102
上的/opt/shares
目录,然后在192.168.40.101
上将这个目录挂载到/opt/mount/fromlinux
目录下
1、共享Linux目录(在192.168.40.102操作)
步骤1.关闭防火墙
# 关闭防火墙
systemctl stop firewalld
# 查看防火墙状态
systemctl status firewalld
步骤2.安装nfs相关工具
yum -yinstall nfs-utils,rpcbind
步骤3.修改共享策略配置文件
vim /etc/exports
/opt/gspt 192.168.40.102(rw,async,no_root_squashk,no_subtree_check)
步骤4.启动rpcbind和nfs服务
systemctl start rpcbind
systemctl start nfs
步骤5.查看本机发布的nfs共享目录
showmount -e
步骤6.修改配置后使其生效
exportfs -rv
2、Linux挂载命令(在192.168.40.101操作)
mount192.168.40.102:/opt/shares /opt/mount/fromlinux
四、注意事项
- Linux挂载Linux的目录时可以不指定文件系统,并且ip的填写不需要加上//,否则会报错;而挂载Windows共享文件需要指定文件系统:-t cifs,并且ip前需要加上//
- 使用mount命令时,挂载点必须必须时已存在的目录,如果这个目录不为空,则该目录下的内容会被覆盖,只有使用umount后才会恢复正常(ps.曾经不小心把挂载点设置为了/etc目录,吓出了一身冷汗),所以还是建议尽量挂载空目录
- 挂载源需要关闭防火墙
- Java7提供的WatchService无法递归监听挂载点下的文件,原因猜测是因为文件系统的不同导致文件监听调用操作系统的api无法生效
- 客户端执行挂载命令需要有读权限
版权归原作者 minamisama 所有, 如有侵权,请联系我们删除。