很多时候在开发、测试或者一些Windows、Linux服务器混合使用的场景下,需要在这些服务器中共享文件夹以方便工作、数据备份等。
VMware虚拟机与宿主机共享文件夹
在使用VMware时,虚拟机中重要的文件尽量备份到宿主机上,因为虚拟机很可能在宿主机突然断电等非正常关机情况下被损坏导致无法再次启动虚拟机。
- 在虚拟机设置中启用并添加文件夹共享
2. 在Linux中挂载
# 4.0之前的Linux内核: sudo mount -t vmhgfs .host:/ /mnt/hgfs #将所有共享文件夹挂载到/mnt/hgfs sudo mount -t vmhgfs .host:/JJB /mnt/hgfs #将名称JJB的共享挂载到/mnt/hgfs # 4.0及更高版本的Linux内核: sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other #将所有共享文件夹挂载到/mnt/hgfs,-o subtype=vmhgfs-fuse,allow_other参数可不加,只能root访问。 sudo vmhgfs-fuse .host:/JJB /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other #将名称JJB的共享挂载到/mnt/hgfs
Windows和Linux(Centos)文件共享
Samba可以实现Windows和Linux文件夹共享:
- Windows上开启文件夹共享(例:JJB文件夹)
- Linux服务器安装Samba并挂载,实现共享
yum install samba yum install cifs-utils # 这个不安装会误导性报错:mount: //192.168.0.10/JJB is write-protected, mounting read-only mount -t cifs -o username=Everyone //192.168.0.10/JJB /mnt/JJB
Linux(Centos)备份文件到Windows
除了上面两种目录共享方式可实现Linux(Centos)备份文件到Windows,还可以通过SCP和FTP实现
- SCP
Windows上需安装开启ssh服务,然后Linux服务器通过scp命令即可
scp -rp /源文件 administrator@192.168.xxx.xx:r # 可配合sshpass命令实现无需每次手动输入密码
2. FTP
这个需要安装FTP Server和FTP client,然后在Linux服务器通过以下命令实现:
ftp -n <<- EOF open 192.168.0.10 user ftpusername passwd lcd /源文件所在目录 put data源文件.txt bye EOF
open后跟的就是Windows的ip地址
user后跟的是Windows上ftp的用户名和密码
lcd是进入Linux中要传输的文件所在目录
put就是上传文件到Windows,后面跟的是文件名