MENU

一款快速,跨平台,多向的文件实时同步工具:Mutagen

说明:Mutagen是一个开源、跨平台的文件同步和网络转发工具,目前支持本地文件系统,远程服务器和Docker容器文件系统之间的同步,感觉同步和lsyncd很类似,但安装和配置更简单。同时也支持转发本地TCP端口(IPv4IPv6)和Unix域套接字,并可以将本地Unix域套接字映射到远程TCP侦听器。

安装

Github地址:https://github.com/mutagen-io/mutagen

支持系统:WindowsMacOSLinux

先访问下载地址→传送门,根据自己的系统架构选择对应的最新版二进制文件,这里以常见的Linux VPS为例,32位就选38664就选amd64,具体还是以实际情况为准,目前最新版为v0.10.0-beta2,如果版本有更新,记得替换下面的下载链接即可。

安装命令:

#32位系统下载二进制文件
wget https://github.com/mutagen-io/mutagen/releases/download/v0.10.0-beta2/mutagen_linux_386_v0.10.0-beta2.tar.gz
#64位系统下载二进制文件
wget https://github.com/mutagen-io/mutagen/releases/download/v0.10.0-beta2/mutagen_linux_amd64_v0.10.0-beta2.tar.gz

#解压文件
tar zxvf mutagen_linux_*.tar.gz -C /usr/local/bin
#启动
mutagen daemon start

使用命令:

#后期随着更新,命令参数可能会有变化,到时候使用mutagen -h查看最新参数即可
Usage:
  mutagen [flags]
  mutagen [command]

Available Commands:
  sync        Create and manage synchronization sessions
  forward     Create and manage forwarding sessions [Experimental]
  project     Orchestrate sessions for a project [Experimental]
  daemon      Control the lifecycle of the Mutagen daemon
  version     Show version information
  legal       Show legal information
  help        Help about any command

Flags:
  -h, --help   Show help information

Use "mutagen [command] --help" for more information about a command.

使用方法

这里主要说同步功能,转发的话,貌似大多数人用不到。
首先同步前,需要先创建一个同步会话,默认为双向同步,命令示例:

#创建一个名为rats1的同步本地/moerat和远程服务器/rats文件夹的会话
mutagen sync create --name=rats1 /moerats user@远程服务器ip:port:/rats

比如远程服务器ip为1.2.3.4,端口为9999,用户名root,则user@远程服务器ip:port可以写成为root@1.2.3.4:9999

创建期间可能会要你多次输入远程服务器的密码,创建会话后,本地文件夹和远程文件夹可以双向同步了,意味着本地和远程的文件夹有任何一个文件夹出现变动,均会在另一方出现变动。

如果要单向同步,则命令示例:

#创建一个名为rats1的同步本地/moerat和远程服务器/rats文件夹的会话
mutagen sync create --name=rats1 -m one-way-safe /moerats user@远程服务器ip:port:/rats

创建会话后,只会单向同步本地/moerat文件夹到远程服务器/rats文件夹,意味着/moerat文件夹出现变动会影响/rats文件夹,而/rats文件夹出现变动不会影响/moerat文件夹。

除了远程同步外,还可以实现本地服务器文件夹之间双向同步,也可以和Docker容器里面的文件夹同步,命令示例:

#创建一个名为rats1的同步本地/moerat和本地/rats文件夹的会话
mutagen sync create --name=rats1 /moerats /rats

#创建一个名为rats1的同步本地/moerat和本地服务器指定Docker容器内/rats文件夹的会话
mutagen sync create --name=rats1 /moerats docker://root@容器ID/rats

Docker容器ID可以使用docker ps命令查看,CONTAINER ID为容器ID,创建本地会话后,相应的文件会双向同步。

其它命令:

#查看所有的会话
mutagen sync list
#监控名为rats1的会话
mutagen sync monitor rats1
#停止名为rats1的会话
mutagen sync pause rats1
#恢复名为rats1的会话
mutagen sync resume rats1
#刷新名为rats1的会话
mutagen sync flush rats1
#永久删除名为rats1的会话
mutagen sync terminate rats1
0:00