V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
l453798303
V2EX  ›  问与答

奇葩需求,或者叫妥协需求,需要一个只备份 env 文件的软件

  •  
  •   l453798303 · 2023-08-24 10:18:03 +08:00 · 1655 次点击
    这是一个创建于 459 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景

    • 有多台电脑,公司、家里 x2 、笔记本
    • 每台电脑上都安装了开发软件
    • 开发代码用了 git 管理
    • 但是让我苦恼的一件事就是,如果过久没有用一台电脑,每次准备开发的时候就会发现 env 配置不正确导致折腾很久

    想法

    想这有没有自动同步 env 的方案,考虑到每台电脑的坏境差异性(已经尽量软件、环境装的一样),想着自动备份 env 文件,仅限 env 就好了,毕竟 env 是不上 git 管理的。 当下想法是,只要有一款软件能备份我指定的 env 文件/指定规则的文件,同步到另一个文件夹即可,后续我可以使用群晖将备份的 env 同步到各个电脑上来,这样既不会冲突,也可以个性化,想要 env 只需要去备份文件夹那拿就好了 找过 N 家市面上的软件,好像都没发指定文件/指定规则的备份/同步方案 或者有没有其他方案来解决,使用另一台电脑的时候,快速配置正确的 env

    18 条回复    2023-09-22 14:13:45 +08:00
    tool2d
        1
    tool2d  
       2023-08-24 10:24:42 +08:00
    好像任何同步软件都可以做到这点吧,自己让 gpt 写个脚本也不难。

    第一步查询服务器 env 文件修改日期。
    第二部如果日期没有本地的新,就自动上传覆盖。
    wusheng0
        2
    wusheng0  
       2023-08-24 10:35:50 +08:00
    不能吧 env 文件分 dev 和 prod 吗,dev 脱敏上传到 git
    1423
        3
    1423  
       2023-08-24 10:45:11 +08:00
    硬链接到一个空白文件夹下面
    同步这个文件夹
    l453798303
        4
    l453798303  
    OP
       2023-08-24 10:55:14 +08:00
    @tool2d “任何同步软件”貌似没有选择性同步的功能,起码我没发现
    @wusheng0 每台电脑下 env 有一定的差异性
    @1423 值得考虑,就是每次得创建一个链接,不够一劳永逸
    triple7
        5
    triple7  
       2023-08-24 11:15:06 +08:00
    提供一个可能性:

    可以参考 https://github.com/lra/mackup 好像不支持 Windows

    简单的介绍可以参考我的文章: https://idayer.com/mac-software-config-backup-and-store/
    itsmingjie
        6
    itsmingjie  
       2023-08-24 11:25:36 +08:00
    最新的 YC 有一个类似的 SaaS 服务: https://infisical.com
    tool2d
        7
    tool2d  
       2023-08-24 11:43:34 +08:00
    用命令行啊,rsync 同步单个文件还是很轻松的。
    dengshen
        8
    dengshen  
       2023-08-24 11:46:43 +08:00 via iPhone
    mackup ?
    dddd1919
        9
    dddd1919  
       2023-08-24 11:47:36 +08:00
    如果安全性要求不高,可以在 git 上在创建一个 private repo
    如果网络不是问题,也可以 env 改造成用配置服务,比如 apollo 或者 nacos 之类的
    victimsss
        10
    victimsss  
       2023-08-24 11:57:27 +08:00
    https://github.com/Infisical/infisical 这个符合你的需求吗
    avalon8
        11
    avalon8  
       2023-08-24 13:37:25 +08:00
    直接同步文件夹 阿里云盘 onedrive 都有这个功能
    yk000123
        12
    yk000123  
       2023-08-24 13:45:41 +08:00 via iPhone
    xuelu520
        13
    xuelu520  
       2023-08-24 13:52:34 +08:00
    git 为啥不能传 env 呢?自己单独拉个分支传上去不就行了。
    不行就自己建个项目,一堆能建私有项目的 gitxxx
    0o0O0o0O0o
        14
    0o0O0o0O0o  
       2023-08-24 13:52:36 +08:00 via iPhone
    woodfizky
        15
    woodfizky  
       2023-08-24 15:01:31 +08:00
    根据你每个环境的配置生成各自的 env
    再弄一个 env_set 文件,gitignore 掉,读取配置的代码根据这个被 gitignore 掉的 env_set 来选择读取哪个 env 文件的配置

    这样你就可以同时管理不同环境的配置文件了,稍微麻烦点的就是每个新环境你都要手动创建一个这样的 env_set 。

    不用 env_set 文件也可以用环境变量来代替,这样连 gitignore 都省了
    kekxv
        16
    kekxv  
       2023-08-24 16:22:29 +08:00
    试试 idea 的 Gateway ?
    l453798303
        17
    l453798303  
    OP
       2023-08-30 14:25:30 +08:00
    @woodfizky 目前觉得你这个方案是既简单又高效了,主要还挺 sao 操作。
    l453798303
        18
    l453798303  
    OP
       2023-09-22 14:13:45 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3240 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:10 · PVG 21:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.