V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sleepingdog
V2EX  ›  NAS

syncthing 可以实现自动剪切文件吗?

  •  
  •   sleepingdog · 2023-03-17 13:09:13 +08:00 · 2061 次点击
    这是一个创建于 377 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是 A ,B 两台设备的 a ,b 文件夹内,
    当 a 内产生 x 文件 /X 文件夹,syncthing 会自动把该 x 移动 /剪切 到 b ,而不是简单的同步。
    -------------------------
    我之前只搞过增量备份,就是在 B 的 syncthing 的 b 文件夹的高级设置,勾上“ignore delete”,这样无论 A 内的东西怎么删,B 只会增不会减。但如果想实现上面的需求感觉就不行了,网上搜到的基本都是教这个“增量备份”。

    ------------------------
    目前的估计可行又没有太大难度的方案是这样:
    按照 chatGPT 的指点,如果 syncthing 不能自己删除同步完的东西,我只能在 A 设备(其实就是安卓手机,定时产生备份文件)装个叫 task 的 app ,定时运行删除指定文件夹的任务;
    syncthing 联网同步,在 B 上面“ignore delete”;
    因为每次产生的备份文件大概也有 30g 左右,所以 B 设备(其实就是 nas )还要写个脚本之类的,只保留最近几份,定时删除多余的备份
    -----------------------------
    因为不太符合“all in one”,所以如果上述功能能在一个 syncthing 内实现就最好了。

    当然各位如果有更好的全盘备份,并且能自动将备份转到 nas 的方案,还是欢迎指点~
    起因是手机暴毙 https://www.v2ex.com/t/924494#reply97
    所谓一朝被蛇咬十年怕井绳。。。
    对于某些人来说,重新装一次 app 绝对不是从应用商店直接搜索下载那么简单。。。
    8 条回复    2023-03-21 23:06:12 +08:00
    mcfog
        1
    mcfog  
       2023-03-17 13:20:06 +08:00 via Android   ❤️ 2
    B 是 nas A 是移动设备的话,反过来在 B 上跑脚本将同步文件夹的内容定期移动走就可以了,让 syncthing 自动把删除动作同步回 A ,不要用 syncthing 的那些不删除或者多版本之类的策略
    sleepingdog
        2
    sleepingdog  
    OP
       2023-03-17 13:21:53 +08:00
    @mcfog #1 绝,我怎么没想到。。。。
    sleepingdog
        3
    sleepingdog  
    OP
       2023-03-17 13:22:54 +08:00
    @sleepingdog #2 研究问题研究傻了,是这样
    yfugibr
        4
    yfugibr  
       2023-03-17 13:34:05 +08:00 via Android
    > task 的 app ,定时运行删除指定文件夹的任务

    曾经考虑过这个方案,但是担心文件同步之前被删除(没法获取同步状态),就放弃了。

    > 因为每次产生的备份文件大概也有 30g 左右

    OP 用的什么备份方法,考虑直接同步文件夹?搭配 .stignore 规则应该没啥问题,我现在就是这么用的,把照片文档之类的文件夹整个同步过去,不需要的文件偶尔手动清一下。

    >所以 B 设备(其实就是 nas )还要写个脚本之类的,只保留最近几份,定时删除多余的备份

    syncthing 有自带回收站,可以控制保留多少个版本,保留多久,文件修改 /删除的时候触发,没啥特殊需求的话不需要自己写。
    sleepingdog
        5
    sleepingdog  
    OP
       2023-03-17 15:45:03 +08:00
    @yfugibr #4 我应该用 1 楼的方案。
    你说的自带的“回收站”似乎更可靠,这样写个定时删除的脚本就行。
    但我发现
    syncthing 的版本控制——似乎需要经过 syncthing 的手,然后它才对该文件搞版本控制——比如 A 在同步了 a 到 B 之后,删除了该文件 a ,相关信息同步到 B 设备发现该文件 a 被删,于是做版本控制
    如果是直接在 B 设备上删除 a 的话,B 设备它不会做版本控制
    ------------------------
    所以如果用你的方案,可能要在安卓 A 上装一个 task 定时删除 a ,这样 B 才会做版本控制

    ---------------------------
    看了下 .stignore 规则,似乎只能实现 “忽略”功能吧,
    https://docs.syncthing.net/v1.23.2/users/ignoring ,好像没能实现我的需求
    yfugibr
        6
    yfugibr  
       2023-03-17 16:18:36 +08:00 via Android
    @sleepingdog #5 是的,我的想法是直接同步文件夹,或者打包备份的时候用同名文件覆盖掉(也会进回收站),不需要使用任何额外的脚本
    yfugibr
        7
    yfugibr  
       2023-03-17 16:19:34 +08:00 via Android
    @yfugibr #6 并不会立刻在手机上删除,手机端会始终保有一个备份
    lilyblx
        8
    lilyblx  
       2023-03-21 23:06:12 +08:00
    我也脑子一下没转过来,卡了几天😂。只要 B 端移走文件删除操作会自动回传给 A
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3348 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:23 · PVG 19:23 · LAX 04:23 · JFK 07:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.