两台linux服务器 挂载同一目录共享目录下的所有文件

本文介绍了如何通过NFS协议将一台服务器上的目录挂载到另一台服务器,并详细解释了具体的命令用法及配置步骤。当遇到权限拒绝错误时,文章还提供了检查NFS服务器配置文件的方法。

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

比如 登陆本地服务器192.168.0.96 然后 打开shell 执行如下命令

/bin/mount -t nfs 192.168.0.95:/opt/usr/huangye/tomcat/webapps/preview/upload      /opt/usr/fileupload/preview/upload


后面的的路径是我的96服务器上的文件路径 要挂载到95下, 执行之后 /opt/usr/huangye/tomcat/webapps/preview/upload      /opt/usr/fileupload/preview/upload 实际上是共享磁盘下一个文件路径



service nfs restart



如果出错

reason given by server: Permission denied

在NFS服务器上,检查/etc/exports配置文件的内容:
[root@vm-centos yum.repos.d]# vi /etc/exports
/media  *(rw)


<think>我们正在处理两个虚拟机之间的文件传输问题。用户希望将文件从一台虚拟机传输到另一台虚拟机的根目录文件夹下。 根据引用[4],我们知道虚拟机有不同的网络模式(桥接、NAT、Host-only)。为了在虚拟机之间传输文件,首先需要确保它们处于同一网络环境中(例如都使用桥接模式连接到同一网络,或都使用NAT模式且在同一子网中)。 步骤: 1. 确认两台虚拟机的网络配置,确保它们可以互相通信(例如通过ping命令测试)。 2. 选择文件传输方法。常见方法有: a. 使用共享文件夹(需要安装VMware Tools,并设置共享文件夹,但这是宿主机和虚拟机之间的共享,不直接用于虚拟机之间) b. 使用网络传输工具(如scp, rsync, ftp等)在虚拟机之间传输文件。 由于用户要求传输到目标虚拟机的根目录,而根目录通常需要管理员权限,所以传输过程中可能需要使用sudo。 具体步骤: 方法一:使用SCP(Secure Copy)命令(推荐,因为安全且简单) 前提条件: - 两台虚拟机都安装了openssh-server,并且开启了ssh服务。 - 知道目标虚拟机的IP地址和登录凭据(用户名和密码)。 步骤: 1. 在源虚拟机上执行: scp /path/to/local/file username@target_vm_ip:/path/to/destination 注意:目标虚拟机的根目录是`/`,但通常我们不会直接写根目录,因为需要root权限。所以我们可以先传输到目标虚拟机的一个普通目录,然后使用sudo移动过去;或者直接使用root账户(不推荐)传输到根目录。 2. 如果目标路径需要root权限,可以尝试: scp /path/to/local/file username@target_vm_ip:/tmp/ 然后登录目标虚拟机,使用sudo将文件从/tmp移动到根目录下(例如:sudo mv /tmp/file /) 3. 或者,如果目标虚拟机允许root用户通过ssh登录(默认不允许,需要修改ssh配置),则可以直接: scp /path/to/local/file root@target_vm_ip:/ 配置root登录(不推荐,因为不安全): 在目标虚拟机中,编辑/etc/ssh/sshd_config,将PermitRootLogin改为yes,然后重启ssh服务。 方法二:使用共享文件夹(需要宿主机作为中介) 1. 在宿主机上设置一个共享文件夹,分别挂载到两个虚拟机(通过VMware Tools)。 2. 将文件从源虚拟机复制到共享文件夹。 3. 在目标虚拟机中,从共享文件夹复制文件到根目录(需要sudo)。 方法三:使用rsync(类似scp,但更适用于大量文件或增量同步) rsync -avz -e ssh /path/to/local/file username@target_vm_ip:/path/to/destination 注意:传输到根目录需要目标虚拟机上的写权限,通常需要root权限。 因此,推荐步骤: 1. 确保网络互通: 在源虚拟机上执行:ping <目标虚拟机IP> 2. 安装ssh服务(如果尚未安装): 在目标虚拟机上执行(Ubuntu): sudo apt update sudo apt install openssh-server 确保防火墙允许SSH(默认端口22): sudo ufw allow ssh 3. 在源虚拟机上使用scp传输文件(假设目标虚拟机用户名为user,IP为192.168.1.100): scp /path/to/source/file user@192.168.1.100:/home/user # 先传到用户目录 然后登录目标虚拟机,将文件移动到根目录: sudo mv /home/user/file / 4. 如果希望一步到位,且目标虚拟机允许root登录(不推荐),则: scp /path/to/source/file root@192.168.1.100:/ 5. 如果文件较大,可以使用rsync(同样需要ssh): rsync -avz -e ssh /path/to/source/file user@192.168.1.100:/home/user 然后同样在目标虚拟机上用sudo移动。 安全提示:传输完成后,如果修改了ssh配置(如PermitRootLogin),建议改回默认值并重启ssh服务。 引用说明: - 引用[4]提供了网络模式的背景,确保虚拟机之间网络互通是传输的前提[^4]。 - 根目录的权限问题参考了Linux文件系统常识(引用[2]和[3])[^2][^3]。 相关问题: 1. 如何检查两台虚拟机是否在同一网络中? 2. 如何设置虚拟机使用桥接模式? 3. 如何在Ubuntu中安装和配置SSH服务器? 4. 如何安全地传输文件而不使用root账户?</think>### 虚拟机间文件传输到根目录的完整指南 #### 一、传输前的准备 1. **确认网络模式** - 确保两台虚拟机使用**桥接模式**(推荐)或**NAT模式**(需同子网)[^4] - 检查网络连通性(在源虚拟机执行): ```bash ping 目标虚拟机IP ``` 2. **安装必要工具** 在**两台虚拟机**上安装SSH和文件传输工具: ```bash sudo apt update sudo apt install openssh-server rsync # 推荐组合 ``` #### 二、文件传输方法(三种方案) ##### 方法1:SCP安全复制(推荐) ```bash # 从源虚拟机执行(需知道目标虚拟机IP和用户名) scp -r /源文件路径 目标用户名@目标虚拟机IP:/ # 示例:将本机/home/user/data传到192.168.1.100的根目录 scp -r /home/user/data ubuntu@192.168.1.100:/ ``` **注意**: - 传输后文件默认属于目标用户,需调整所有权: ```bash sudo chown -R root:root /data # 在目标虚拟机执行 ``` ##### 方法2:Rsync增量同步(适合大文件) ```bash # 在源虚拟机执行 rsync -avz -e ssh /源文件路径 目标用户名@目标虚拟机IP:/ # 示例:同步日志文件夹到根目录 rsync -avz -e ssh /var/log ubuntu@192.168.1.100:/ ``` ##### 方法3:共享文件夹法(需VMware Tools) 1. 在宿主机创建共享文件夹 2. 在两台虚拟机挂载共享目录: ```bash sudo mount -t fuse.vmhgfs-fuse .host:/共享名 /mnt -o allow_other ``` 3. 复制文件到根目录: ```bash sudo cp -r /mnt/文件 / # 在目标虚拟机执行 ``` #### 三、根目录权限处理 传输后需调整权限(在目标虚拟机执行): ```bash # 查看当前权限 ls -ld /目标文件夹 # 注意d参数显示目录属性[^3] # 修改所有权(示例将/data设为root所有) sudo chown -R root:root /data # 修改权限(示例设为755) sudo chmod 755 /data ``` 权限说明: - `755` = 用户(rwx) 组(r-x) 其他(r-x) - `root:root` = 用户:组所有权[^3] #### 四、验证与调试 1. **验证传输** ```bash # 在目标虚拟机检查 ls -l / | grep 文件夹名 du -sh /目标文件夹 ``` 2. **常见错误处理** - **权限拒绝**:在scp/rsync命令前加`sudo` - **连接超时**:检查虚拟机防火墙状态 ```bash sudo ufw status # 查看防火墙 sudo ufw allow ssh # 允许SSH ``` - **磁盘空间不足**: ```bash df -h / # 查看根目录空间 ``` > **安全提示**:根目录操作需谨慎,建议先传输到`/tmp`测试: > ```bash > scp file user@ip:/tmp && ssh user@ip "sudo mv /tmp/file /" > ``` #### 五、替代方案(无网络时) 1. 将文件打包为ISO镜像 2. 通过虚拟机设置挂载为CD驱动器 3. 在目标虚拟机挂载并复制: ```bash sudo mount /dev/cdrom /mnt sudo cp -r /mnt/data / ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值