l453798303
V2EX  ›  问与答

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

  •  
  •   l453798303 · Aug 24, 2023 · 3265 views
    This topic created in 1170 days ago, the information mentioned may be changed or developed.

    场景

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

    想法

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

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

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

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

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

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

    不用 env_set 文件也可以用环境变量来代替,这样连 gitignore 都省了
    kekxv
    kekxv
    Aug 24, 2023
    16
    试试 idea 的 Gateway ?
    l453798303
    l453798303
    OP
    Aug 30, 2023
    17
    @woodfizky 目前觉得你这个方案是既简单又高效了,主要还挺 sao 操作。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4897 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 07:46 · PVG 15:46 · LAX 23:46 · JFK 02:46
    ♥ Do have faith in what you're doing.