怎样与云主机进行文件同步

⌚Time: 2024-04-26 20:13:00

👨‍💻Author: Jack Ge

rsync

我本想使用rsync。但是我服务器和本地客户端都是windows系统。没办法使用。

robocopy

我后来想使用windows自带的robocopy工具,毕竟一条命令就能够实现文件同步,但是远程主机需要映射到本地文件夹。

一开始我直接使用net use命令尝试挂载

net use F: \\xxx.xxx.xxx.xxx\d "xxx" /user:"xxx"

怎么样都是53报错,问云主机的客服,说公网屏蔽smb的139/445端口,让我用nfs,后来我发现微软的nfs简直就是个智障。竟然没有身份验证谁都可以连接。谁会在公网使用nfs。

但是我尝试了,我就把过程记录下来,我记录下来不代表我会用。

服务端的配置

对于服务端,需要打开服务管理器,点管理,新建服务角色,在服务器角色里面勾选NFS文件服务器

然后一直下一步直到安装成功

之后在服务器管理,共享,新建共享,选择NFS共享

之后选择共享路径

身份验证

之后可以指定访问的主机ip,真愚蠢,如果我换个ip访问就不能访问了,如果我之前的IP被别人用了那么别人就能访问,这种设定真的是蠢到家。所以我直接选择了任何人都能访问。连个身份验证的方式都没有,nfs真的垃圾。

然后服务端好像就配置完成了。

客户端的配置

需要到程序,启用和关闭windows功能里面开启NFS服务

之后你可以使用命令来查看远程主机NFS共享目录

>showmount -e xx.xx.xx.xx
导出列表在 xx.xx.xx.xx:
/desktop                           (noone)

然后使用下面的命令把远程主机共享目录挂载到本地文件夹

mount \\xx.xx.xx.xx\desktop\ m:\
m: 现已成功连接到 \\xx.xx.xx.xx\desktop\

命令已成功完成。

你可以使用mount命令查看挂载情况,默认是匿名

mount

本地    远程                                 属性
-------------------------------------------------------------------------------
m:       \\47.120.1.36\desktop\                 UID=-2, GID=-2
                                                rsize=32768, wsize=32768
                                                mount=soft, timeout=0.8
                                                retry=1, locking=yes
                                                fileaccess=755, lang=GB2312-80
                                                casesensitive=no
                                                sec=sys

如果想取消挂载m盘,使用

umount m:

按理说现在我就可以使用robocopy命令同步主机了,但是谁会去用这个谁都能连上的主机呢?所以我放弃了。

winscp

最后我使用回到scp命令,使用了winscp客户端。 远程windows主机需要确认开启了sshd服务

net start sshd

启动winscp,文件传输协议选择sftp,如果选择scp有可能建立会话失败。主机地址、用户名和密码都填写好就连接就行了

连接成功之后能够看到本机和远程主机目录,点synchronize就能同步

第一个地方填写本地目录,第二个地方填写远程目录,下面的同步方向,remote是本地同步到远程,local是远程同步到本地

提示:第一次同步数据要进行测试,以免同步方向错误造成损失!

点击ok开始同步,会进行文件比较,然后生成一个同步的文件列表,点击ok就会开始同步了。

同步过程

我对于同步没有自动化的要求,但是winscp好像可以用命令行实现同步。配合脚本就能够实现自动同步。