随着数据的增长,我们对于文件的同步和备份需求也日趋强烈。各种网盘为我们在文件同步备份提供便利的同时,也在速度、安全和隐私等方面带来不小的限制和风险。
Syncthing是一款开源免费跨平台的文件同步工具,是基于P2P技术实现设备间的文件同步,所以它的同步是去中心化的,即你并不需要一个服务器,故不需要担心这个中心的服务器给你带来的种种限制,而且类似于torrent协议,参与同步的设备越多,同步的速度越快。针对隐私问题,Syncthing软件只会将数据存储于个人信任的设备上,不会存储到服务器上。设备之间的通信均通过TLS进行,Syncthing还使用了完全正向保密技术来进一步保障你的数据安全。对于处于不同局域网之中的设备之间的文件同步,Syncthing也提供了支持。
Syncthing支持非常多的平台,包括Windows、macOS、Android、Linux、FreeBSD、Solaris、群晖和威联通NAS等,但遗憾的是,在iOS上只有一个第三方客户端fsync。
Syncthing服务器间文件同步时,若根目录下子目录或文件不想同步时,可以配置忽略规则。
如下截图,表示根目录/Apache下所有名称为temp、glowroot的文件夹不进行同步。
说明:
0、匹配规则仅仅是如何匹配,若要匹配文件夹/目录/子目录时,忽略模式中最后不能写/,写了/的表示匹配目录下的子目录/文件。
请注意,以斜杠结尾的目录模式some/directory/与目录内容匹配,但与目录本身不匹配。如果希望模式与目录及其内容匹配,请确保模式末尾没有/。
1、配置忽略模式时, 忽略规则都是基于文件根目录的,根目录如下图所示:
2、以 // 开始的行,表示该行是注释,不是忽略规则。
3、文件夹/目录名称(如temp)匹配——忽略根目录下所有该文件夹/目录/子目录,即服务器间同步时,配置的该文件夹/目录(temp)不进行同步。
4、* 匹配符——匹配任意个字符,但不包含目录分隔符 \,如te*p,可以匹配temp、teatop、tep等,但不匹配templete\pool。
5、** 匹配符——匹配任意个字符,且包含目录分隔符 \ 。
6、? 匹配符—— 一个?匹配一个字符,且不包含目录分隔符 \ 。
7、[ ]匹配符—— 一个[ ]匹配一个区间内的字符,如[a-c],即这个字符可以是a或b或c。
8、{}匹配符——匹配{}中以逗号分隔的一个内容,如{banana,pineapple},即可以匹配到banana或pineapple。
9、\ 转义符——特殊符号(如:*、/ 、\、*、?、[、]、{、}),匹配规则需要特殊匹配时,可以使用到转义符,如\{banana\}可以匹配到{banana}
,当前windows系统不支持。
10、/Apache——只在根目录下匹配,即Apache若为子目录,则匹配不到。
11、#include more-patterns.txt——可以引用外部的规则文件,但是模式本身仍然是相对于文件夹根目录的,且文件不存在或重复引用会报错。
12、!匹配符——即大规则下某些文件夹/目录/文件需要同步,!时需要强制扫描整个目录树,但!/Apache不会强制扫描整个目录树。
13、(?i)匹配符——即后面的内容不区分大小写来进行匹配。
14、(?d)匹配符——即删除文件夹/目录时,若文件夹/目录下有被组织删除的文件,可以使用该前缀,表示可被允许删除的文件。
注意:(?d)(?i)可以部分前后进行匹配。
根目录截图
来源参考:
Syncthing的ignore忽略规则配置说明_XiaoXiao_RenHe的博客-CSDN博客_syncthing 忽略模式