65.9K
CodeProject 正在变化。 阅读更多。
Home

使用可自定义的定期计划自动化数据库备份

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2020年7月1日

Apache

3分钟阅读

viewsIcon

6166

一个 CLI,用于使用可自定义的定期计划自动化数据库备份。

引言

使用可自定义的周期性计划自动化数据库备份的 CLI。

特点

  • 备份方案 - Synchly 使用“祖父-父-子”备份轮换方案(每日、每周、每月),该方案是完全可自定义的。
    默认计划:7 个每日备份 + 8 个每周备份 + 6 个每月备份(最多,在给定时刻会有 21 个备份)。
  • 灵活的计划 - 根据您的维护和开发计划安排每日备份,以便您随时间推移清晰了解您的数据库备份情况。
  • 支持的数据库
    • MySQL
    • MongoDB
  • 压缩 - Synchly 会压缩数据库备份以节省空间。
  • 云存储集成 - 将本地备份同步到您选择的远程存储。
  • 支持的远程存储
    • Google Drive
    • SFTP
  • 状态通知** - 获取有关成功和失败备份的每日状态报告,通过 SMTP 按您期望的时间发送到指定的电子邮件。请查看下方的“用法”和“选项列表”。

必备组件

  • node >=8

安装

Synchly CLI 以 NPM 包的形式分发。要使用它,请全局安装它,使用

npm install --global synchly

或使用 yarn

yarn global add synchly

Tab 自动完成

synchly 包包含一个有用的 Tab 自动完成功能。该功能在安装包后会自动安装。但是,安装包后您可能需要重启控制台才能使自动完成功能正常工作。

如果您使用 Bash,它将在 ~/.synchly/completion.sh 创建一个文件,并将加载器代码附加到 ~/.bash_profile 文件。

如果您使用 Zsh,它会将加载器代码附加到 ~/.zshrc 文件。

如果您使用 Fish,它会将加载器代码附加到 ~/.config/fish/config.fish 文件。

用法

$ synchly [--config module] 
$ synchly [--disable module] 
$ synchly [--enable module] [--stacktrace] 
$ synchly [--help] 
$ synchly [--reset] 
$ synchly [--start] 
$ synchly [--version]

快速设置

可以使用 `--help` 标志运行 Synchly 以获取完整的标志列表。

开始的最快方法是运行命令

synchly --config=db

要启动 synchly,请使用命令

synchly --start

每次使用 cli 选项更改配置时,都必须重新启动 Synchly 实例。可以使用以下命令添加或更新模块(remote-syncsmtp)的配置:

synchly --config=module

默认情况下,remote-syncsmtp 模块是禁用的,要启用它们,请使用命令。

synchly --enable=module

有关所有选项及其行为的完整列表,请参阅下方的“选项列表”。有关将 synchly 作为守护进程运行,请参阅下方的“作为守护进程运行”部分。

选项列表

选项 描述
-c, --config=module

创建或更新模块配置。
允许的模块:db | remote-sync | smtp

-d, --disable=module

禁用模块。
允许的模块:remote-sync | smtp

-D, --debug

打印 CLI 操作的更多信息,用于调试目的。

-e, --enable=module

启用模块。
允许的模块:remote-sync | smtp

-h, --help

打印关于选项及其参数的 CLI 参考信息。

--reset

重置所有已保存的配置。

-S, --stacktrace

打印 CLI 操作错误信息的更多信息,用于调试目的。如果您发现错误,请在提交错误报告时提供使用 --stacktrace 标志生成的输出。

--start

启动 synchly 实例,该实例将日志记录到 stdoutstderr

-v, --version

显示版本信息并退出。

作为守护进程运行

Synchly 可以作为守护进程运行,init.dsystemd 单元文件已包含在 npm 包中,以方便实现此目的。如果使用 npm 安装,

init.d

$ npm install --global synchly
$ sudo cp /usr/local/lib/node_modules/synchly/bin/synchly.conf /etc/init 
$ sudo start synchly 

systemd

$ npm install --global synchly 
$ cp /usr/local/lib/node_modules/synchly/bin/synchly.service ~/.config/systemd/user/
$ systemctl --user enable synchly
$ systemctl --user start synchly

如果单元文件不在 `/usr/local/lib/node_modules` 中,请使用 `npm root -g` 获取全局安装根路径,并从那里复制单元文件。如果全局安装根路径与 `/usr/local/lib/node_modules` 不同,则 `synchly.service` 单元文件中的 `WorkingDirectory` 字段也需要更改。

如果使用 Yarn 安装

如果使用 yarn global 安装,服务 init 文件将位于

  • `/usr/local/share/.config/yarn/global/node_modules/synchly/bin/` - 如果以 root 身份登录
  • `~/.config/yarn/global/node_modules/synchly/bin` - 如果以非 root 用户登录

注意:每次使用 cli 选项更改配置时,请不要忘记重新启动守护进程。

示例

贡献

我很乐意得到您的帮助!如果您有新功能的想法或反馈,请通过在问题列表中创建问题来告知我。

许可证说明

版权所有 2020 Hariprasanth S

历史

  • 2020 年 7 月 1 日:初始版本
© . All rights reserved.