惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

Peng's Blog

通过《Resilient AI Supercomputer Networking using MRC and SRv6》理解协议层面的故障检测 经典论文MP-RDMA(多路径RDMA)阅读 Vibe paper不负责指北 SPFC参考文献阅读《CONGA》 读《Uno:数据中心间和数据中心内拥塞控制与可靠连接的一站式解决方案》 Lenovo Legion Y9000P 在 Linux 下只有 30W:从现象、WMI 到驱动补丁 理解《From ATOP to ZCube》中的ZCube网络拓扑 集合通信原语学习 Zotero在Wayland下侧边栏无法拖动的解决办法 再读CAVER 我读的第一篇论文--NSDI_26_CAVER 在archlinux下使用万象拼音实现更智慧的中文输入法 Traefik实现单Docker容器托管多个静态网站 Pengs.top浴火重生!备案、服务器迁移与全站Docker化 严谨与温度并存:北航宋友老师程设课的学习感悟 Android Studio全流程换源指南 解决linux系统下pipewire作为音频服务器持续播放声音中断问题 在ThinkBook 16+ 2025上安装archlinux驯服记录【基本信息与触摸板修复】 自建图床和PicGo闹不愉快?干脆自己写个脚本,深度整合到KDE右键菜单! btrfs各压缩等级速率测试脚本,选择最适合你的压缩级别 别当冤大头,Adobe全家桶破解源头方案:修图剪辑不求人,盗版网站也得从你这儿进货! 轻松配置aria2下载器,通过systemd设置开机自启并与浏览器集成 Git Commit 规范指南
「行云流水」在挂载移动硬盘时自动启动Syncthing开始同步的丝...
Pengbo · 2025-08-09 · via Peng's Blog

syncthing

Syncthing是一款持续文件同步程序。它能实时在两台或多台计算机之间同步文件,安全防范窥探。您的数据仅属于您自己,您理应选择数据的存储位置、是否与第三方共享,以及数据如何在互联网上传输。

很多人称Syncthing为一个网盘,实际上Syncthing本身不提供文件存储的服务。它只是一个工具,让你的数据可以在你的多个设备之间点对点增量传输,如果你有一台自己的NAS,那么你确实可以收获一个速度秒杀绝大部分网盘的“网盘”

Syncthing的安装并不难,网上有很多教程,我就不重复造轮子了。

Syncthing的分布式存储理念很棒,但是在我的使用中,还是有点痛点。

痛点

我的上一台电脑只有256GB的存储空间,分给linux的只有60GB,在这样的空间上,我想要备份手机相册就捉襟见肘了。所以我一向把相册、音乐等等存储到一张1TB大小的机械硬盘上(1TB在机械盘中算小了,但是暂时够用)。

So,在设置Syncthing的时候我选择将Syncthing备份数据的位置放在机械硬盘上。为了防止Syncthing在我不需要的时候常驻后台,我并没有设置开机自启。于是在每次需要同步数据的时候,都需要把机械硬盘插上电脑,挂载打开,手动启动电脑和手机上的Syncthing,虽然只是一行命令的事,但是作为对系统要求到近乎苛刻的我,这一不流畅的工作流实在不够优雅。我希望实现类似于传统网盘客户端那样的“无感”体验。

你永远可以相信你对linux的自定义程度

想到要做这个事啊,我就想到了systemd 这个linux上几乎已成标准的服务管理程序。

要实现这个需求,我们希望有一个trigger触发器,在我的移动硬盘挂载的时候触发,激活我们编写的service,然后启动Syncthing

思路还挺清晰的。接下来找这个trigger

还是要吐槽一下linux,虽然可自定义性挺高,提供的接口也很多,这赋予了系统强大的能力,但是这些接口的文档太多太杂,且分散在各处。对于新手、老手都是个头疼的问题,好在现在AI吸收了天地之精华,问一下,很快就找出来了,在这一点上,AI真是提高了我的效率。

正如服务有对应的单元文件一样,设备挂载时也会产生固定的单位(但是并不存在实际文件)可以使用systemctl查看:

1
systemctl list-units --type=mount --user

我这里的输出如下:

屏幕截图_20250809_115538

第一列为我们需要的systemd挂载名称,最后一列为挂载路径。如果你参考持续化设置一节配置过/etc/fstab,则挂载名称会短一些。

参考ArchWiki我编写了如下的service:

1
2
3
4
5
6
7
8
9
[Unit]
Description=Syncthing
BindsTo=mnt-btrfs.mount

[Service]
ExecStart=/usr/bin/syncthing

[Install]
WantedBy=mnt-btrfs.mount

保存至~/.config/systemd/user/syncthing.service

创建后还需要运行:

1
systemctl enable syncthing --user

该服务才会生效,不用担心额外的资源占用,因为这个enable不会导致Syncthing在系统启动时开始运行。在设备卸载后,Syncthing也会随之停止运行

效果

服务启动时,也会弹出浏览器中的WebUI,还挺好

Zcc见过很惊讶。