说明:一般我们同步Windows
和Linux
之间的文件时,常用的方法有nfs
挂载,inotify + rsync
同步等,有钱的或许会买成熟的storenext
系统,当然后者基本上都是公司在用,storenext
由于价格太贵,个人使用基本可以无视,而nfs
由于兼容性问题,在实际挂载中会出现很多小问题,算是inotify + rsync
使用的比较多,不过鉴于前两天水过一篇Mutagen,博主发现用来实现Windows
和Linux VPS
之间双向同步的时候,速度还行,资源占用都不算很大,这里就大致水下使用方法,顺便也可以结合下Rclone
,间接实现不挂梯子达到Windows
和Gdrive
双向同步的目的。
安装
Github地址:https://github.com/mutagen-io/mutagen
说明:这里Windows
使用Mutagen
前提条件需要OpenSSH
,而Windows 10
内置OpenSSH
,不过貌似mutagen
目前不支持默认的SSH
,所以就需要我们安装一个额外的OpenSSH
了,官方是推荐Git for Windows
的,里面自带OpenSSH
客户端,我们可以手动下载安装→传送门,也可以使用其它方法安装,这里博主就使用比较简单的Scoop
命令行安装,好处就是安装和卸载都很方便。
以下方法适用于以下系统:
Windows 10
Windows Server 2012 R2
Windows Server 2012
Windows Server 2008 R2 SP1
Windows 8.1
Windows 7 SP1
这里Windows 10
可以跳过1
、2
步骤;其它系统需要进行1
、2
步骤升级到PowerShell 5
。
1、安装.NET Framework 4.5.2
#下载地址
https://www.microsoft.com/en-us/download/details.aspx?id=42642
2、安装Management Framework 5.1
#下载地址
https://www.microsoft.com/en-us/download/details.aspx?id=54616
##对应的系统下载包名
#Win 2012 64位
W2K12-KB3191565-x64.msu
#Win 7和Win 2008 R2 64位
Win7AndW2K8R2-KB3191566-x64.zip
#Win 7 32位
Win7-KB3191566-x86.zip
#Win 8.1和Win 2012 R2 64位
Win8.1AndW2K12R2-KB3191564-x64.msu
#Win 8.1 32位
Win8.1-KB3191564-x86.msu
都安装完成后记得重启电脑生效。
3、安装Scoop
先在电脑左下角程序搜索框输入PowerShell
,然后双击Windows PowerShell
工具,再使用命令:
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
如果安装不上,可能还需要更改执行策略,使用命令:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
出现提示,选择Y
即可,然后再重新执行上面的命令安装Scoop
。
4、安装Git
scoop install git
5、下载Mutagen
#先在D盘根目录新建mutagen文件夹
mkdir D:\mutagen
#替换下面最新版的Windows二进制文件地址,查看地址:https://github.com/mutagen-io/mutagen/releases
$ws = New-Object Net.WebClient
$url = "https://github.com/mutagen-io/mutagen/releases/download/v0.10.0/mutagen_windows_amd64_v0.10.0.zip"
#设置下载路径,默认D盘根目录mutagen文件夹
$downdir = "D:\mutagen\mutagen.zip"
#开始下载,这里挂梯子下载貌似会快些
$ws.DownloadFile($url,$downdir)
#解压文件
Expand-Archive -Path D:\mutagen\mutagen.zip -DestinationPath D:\mutagen
这里除了可以在PowerShell
使用命令下载,还可以直接使用浏览器下载压缩包,然后在D
盘新建mutagen
文件夹,并解压到该文件夹即可。
同步到VPS服务器
这里我们需要先设置一个变量MUTAGEN_SSH_PATH
,指向SSH
、SCP
可执行文件目录,不然会无法识别SSH
可执行文件。
$env:MUTAGEN_SSH_PATH= "$env:GIT_INSTALL_ROOT\usr\bin"
比如我要同步本地D
盘根目录的BACK
文件夹和远程Linux
服务器的/moerats
文件夹,使用命令:
#双向同步,创建会话为rats,D:\BACK为BACK文件夹绝对路径
D:\mutagen\mutagen.exe sync create --name=rats D:\BACK root@远程服务器ip:ssh端口:/moerats
#单向同步,创建会话为rats,D:\BACK为BACK文件夹绝对路径
D:\mutagen\mutagen.exe sync create --name=rats -m one-way-safe D:\BACK root@远程服务器ip:ssh端口:/moerats
如果期间遇到提示,选择yes
,第一次可能会多要你输入几次服务器密码。
同步到GDrive网盘
提示:这里挂载网盘的同步参数会比上面多个--probe-mode=assume,不然远程会不停的产生很多缓存文件。
首先在VPS
上使用rclone
挂载Google Drive
网盘,挂载教程→传送门,当然这里挂载OneDrive
什么也是可以的,不过没啥必要,毕竟有OneDrive
客户端。
接下来设置一个变量MUTAGEN_SSH_PATH
,指向SSH
、SCP
可执行文件目录,不然会无法识别SSH
可执行文件。
$env:MUTAGEN_SSH_PATH= "$env:GIT_INSTALL_ROOT\usr\bin"
比如我要同步本地D
盘根目录的BACK
文件夹和远程Linux
服务器挂载Gdrive
网盘的/moerats
文件夹,使用命令:
#双向同步,创建会话为rats,D:\BACK为BACK文件夹绝对路径
D:\mutagen\mutagen.exe sync create --name=rats --probe-mode=assume D:\BACK root@远程服务器ip:ssh端口:/moerats
#单向同步,创建会话为rats,D:\BACK为BACK文件夹绝对路径
D:\mutagen\mutagen.exe sync create --name=rats -m one-way-safe --probe-mode=assume D:\BACK root@远程服务器ip:ssh端口:/moerats
如果期间遇到提示,选择yes
,第一次可能会多要你输入几次服务器密码。
具体的使用命令可以查看→传送门,基本上都差不多。注意电脑每次重启后,都需要重新设置变量和创建一个同步会话,即重复同步步骤即可。
最后该方法只适合折腾玩玩,毕竟是博主瞎在折腾,也没用太久,实际效果未知,同样喜欢折腾的可以试试,反之,了解下就行了。
版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!
本文链接:https://www.moerats.com/archives/981/
如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。
博主 能出一篇linux+rclone 同步世纪互联的教程吗 windows也可以
额,没用过世纪互联,不好测试
WIN10, 出问题了,
D:mutagen
λ .mutagen.exe sync create --name=rats -m one-way-safe D:laragonwwwjieqifiles root@XXXXX:28230:/www/site/files
Connecting to agent (POSIX)...
Error: create failed: unable to connect to beta: unable to connect to endpoint: unable to dial agent endpoint: unable to create agent command: unable to set up SSH invocation: unable to identify 'ssh' command: unable to locate command
D:mutagen
D盘的文件夹格式好像不太对,D:laragonwwwjieqifiles,这种类型
你这评论把斜杆过滤了就这样子了。github上也有人提这个问题, 好像是那个变量的问题. 不知道么解决.
我现在是WINDOWS下大量TXT(最大几百K, 一分钟生成的大概也就50来个吧)要最好实时(延时个半分钟最多)同步到服务器。现在在用syncthing,不过不知道是不是WINDOWS所在网络是家庭宽带运营商联通的内网IP,造成有时候同步有时候不同步。
是这个么MUTAGEN_SSH_PATH,之前测试的时候,貌似没啥问题,不知道现在怎么样了
博主什么时候出一篇calibre-web教程,自己装不知道怎么回事儿一直失败
给你直接找了个官方推荐的docker,地址:https://github.com/Technosoft2000/docker-calibre-web。
1、安装Docker
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安装镜像
docker create --name=calibre-web --restart=always -d \
-v /volume1/books/calibre:/books \
-v /volume1/docker/apps/calibre-web/config:/calibre-web/config \
-e USE_CONFIG_DIR=true \
-e PGID=65539 -e PUID=1029 \
-p 8083:8083 \
technosoft2000/calibre-web
登录信息:
地址:ip:8083
用户名: admin
密码: admin123
其它设置看github地址并使用谷歌浏览器在线翻译。
感谢 我看看去
linux到win的同步虽然不难,但是经常遇到同步后权限变化的问题,还有文件名的问题,现在基本都不做不同系统间的同步了,用专门的nas
折腾下玩玩也行,多知道种方法也好。
看了一下速度跑不过10m/s是正常的么
正常,毕竟速度得看你本地带宽,还有和服务器之间的网络情况。
其实我是本地跑本地 一台debian9跟一台win2016
前提需要有vps吧
是的。
win10单向同步到Linux是自动同步,还是需要手动同步?
自动的,创建会话后,只要把文件丢进本地文件夹就自动同步到远程文件夹。
关机重启后也能自动吗?
重启需要自己搞开机自启,不然需要手动设置变量和创建个会话才行。