使用 PM2 实时同步 Logseq 文件到 GitHub
在之前的方案中,logseq 是通过 crontab 进行定期同步,每隔五分钟同步一次。然而,这个时间间隔在某些情况下显得太长。例如,当我在电脑上编辑完成,想要立即在手机上继续编辑时,我会发现文件尚未同步完成,需要等待到电脑的五分钟定时同步时间到达后才能获取到最新的文件。因此,我决定改进这个方案,直接监听 logseq 文件夹的变化,当检测到文件变化后立即执行 git 同步。
我最初考虑使用 chokidar-cli 作为监听文件并执行命令的工具,但是这个工具需要在用户登录后自动执行,并且必须保持在线,若出现错误也需要能自动重启。考虑到这些需求,我转而选择了 pm2 来实现。虽然 pm2 的典型用法是保持服务在线,但我发现它的配置也支持监听文件变化并执行一次性脚本。
这个方案依赖于 nodejs 执行环境,因此你的电脑上必须已经安装了 npm。然后,你需要全局安装 pm2:
安装完成后,在你打算执行 pm2 的地方创建一个名为 ecosystem.config.js
的文件,并填入以下内容:
接下来,启动 pm2:
不出意外的话结果是这样就表示成功了
其他有用的命令包括 pm2 status
查看任务状态,以及 pm2 log
查看正在运行任务的日志。
最后,为 pm2 添加开机启动:
执行此命令后,pm2 会给你一个脚本。你需要运行这个脚本以添加系统服务。
让 pm2 开机后自动执行 logseq 同步任务:
这样,你的电脑上的 logseq 文件应该就能更稳定地同步到 GitHub 了。
需要注意的是,之前的定时同步方案仍然需要保留,因为这个新方案的前提是本地文件发生了变动。如果本地文件长时间未编辑,那么就无法获取到最新的文件。