Syncthing測評
2024年12月27日跨电脑文件夹同步工具有很多。我以前一直用Resilio Sync,最近嘗試了Syncthing。本文對Syncthing做一個總結和經驗分享。
Syncthing经常被宣称为Resilio Sync的开源替代品。Syncthing可以同步所谓的extended attributes[1]。NTFS交换数据流(alternate data streams, alt streams)理论上属于extended attributes[2],但Syncthing目前不识别alt streams。
Syncthing的GUI是网页,对某些用户来说可能较不直觉。在Syncthing建立同步,需要在电脑A选取文件夹,复制电脑ID;电脑B输入电脑A的ID;电脑A输入电脑B的ID,同意共享文件夹给电脑B;电脑B同意同步电脑A的文件夹。对于首次同步,需要在两台物理上有距离的电脑上来回跑好几次。不像Resilio Sync复制一个链接就可以。在兩臺電腦已建立鏈接的情況下,若新增一個同步文件夾,則peer上會自己提示。
在非直連情況下(relays used),Syncthing的传输速度比较快。Syncthing有一个待传文件列表,用户可以优先传输某些文件,也可以按文件名、按修改日期等排序来传。
Syncthing的默認值設置得不好。開發團隊追求擴展性、簡潔性、通用性。某一默認值可能會犧牲1%、2%的用戶,開發團隊也不願意改。在《Ignore some files by default?》,社群試圖一次性通過一組默認值,而不是對默認值裏的項目逐條審查,導致10年過去了,還沒有討論好用哪一“組”默認值。核心開發者甚至建議用戶寫一個Go/C++程序來設置默認值。
表格1總結了Syncthing的優缺點。
優點 | 缺點 |
---|---|
傳輸速度快 | 網頁操作不直觀 |
可以查看待傳文件 | 兩臺電腦建立連接麻煩 |
可對待傳文件排序,或手動調整順序 | 不支持Windows alt streams |
同步算法不穩定,可能造成兩邊同時刪除文件 | |
默認不啓用備份,文件誤刪除欲哭無淚 | |
默認同步所有文件(臨時文件、系統級文件等),易造成衝突或傳輸體積過大 |
總結
Syncthing沒有非常方便的默認設置,也缺少工業使用所需的强壯性、安全性。這或許可以通過配置來彌補,但Syncthing的默認配置絕對達不到此要求。所以,Syncthing如果要成爲工業級的產品,則欠缺火候。
我建議folder defaults應該要開啓file versioning。推薦用Simple File Versioning。Clean out after 30 days, Cleanup Interval 36000 seconds。建議把global ignore pattern設置爲跟Resilio Sync一樣的内容。
$RECYCLE.BIN $Recycle.Bin System Volume Information ehthumbs.db desktop.ini Thumbs.db lost+found .DocumentRevisions-V100 .TemporaryItems .fseventsd .icloud .iCloud .DS_Store .DS_Store? .Spotlight-V100 .Trashes .Trash-* ~* *~ .~lock.* *.part *.filepart .csync_journal.db .csync_journal.db.tmp *.swn *.swp *.swo *.crdownload .@__thumb .thumbnails ._* *.tmp *.tmp.chck .dropbox .dropbox.attr .dropbox.cache .streams .caches .Statuses .teamdrive .SynologyWorkingDirectory @eaDir @SynoResource .!@#$recycle DfsrPrivate *.un~ .sync
参考资料
- . syncXattrs. Syncthing Documentation. [2024-12-21].↑
- calmh. RFC: Syncing extended attributes. . 2022-05-22 [2024-12-21].↑