Skip to main content

ShowBackup

介绍

showbackup是一个短小精干的MySQL数据库备份脚本,支持全库,指定库,指定表,定时快速备份。

  • 支持全库备份,指定库备份,指定表备份
  • 支持备份输出sql文件或压缩文件
  • 支持定时自动化备份任务
  • 支持清理过期历史备份文件

安装

$ pip3 install showbackup

配置

首次使用必须先配置运行参数 运行showbackup --config来查看配置文件的位置,使用vi编辑它:

$ showbackup --config
  请通过编辑showbackup配置文件来完成配置
  vi /your/python/path/dist-packages/showbackup/conf.json

配置文件说明

{
  "mysql": {
    "host": "localhost",
    "port": 3306,
    "user": "root",
    "pwd": "",
    "source": [
        {"db": "testdb01", "tables": ["users", "posts"]},
        {"db": "testdb02"}
    ],
    "backup_path": "/opt/showbackup/mysql",
    "is_zip": false,
    "every_day_at": "17:49",
    "keep_days": "3"
  }
}
/**
 * host: 表示mysql的连接地址
 * port: mysql的端口号
 * user: 用于备份数据库的账号
 * pwd: 用于备份数据库的密码
 * source: 备份的数据内容(支持全库备份,指定库备份,指定表备份)
    - 全库备份
      source: []

    - 指定库,eg.备份testdb01和testdb02两个数据库
      source: [{'db':'testdb01'}, {'db': 'testdb02'}] 

    - 指定表,eg.仅备份testdb01数据库中的users和posts表和备份testdb02数据库
      source: [
          {'db':'testdb01', 'tables':['users', 'posts']}, 
          {'db': 'testdb02'}
      ]
 * backup_path: 填写备份文件存放的目录,默认 /opt/showbackup/mysql
 * is_zip: 是否启用压缩
 * every_day_at: 
    - 每天执行备份的时间点,支持HH:MM:SS 或者 HH:MM
    - eg. 每天凌晨三点整,03:00
    - eg. 每天凌晨三点零八分二十六秒,03:08:26
 * keep_days: 历史备份文件保留最近几天
 */

使用

手动执行

# 手动执行一次数据库备份,备份完成程序自动退出
$ sudo showbackup mysql
  所有任务均已完成,总耗时12.32秒

$ tree /opt/showbackup/mysql
  mysql
  └── 201800712_135955
      ├── testdb02
      │   ├── table_user.sql.gz
      │   └── table_visitor.sql.gz
      └── test_len
          └── db_test_len.sql.gz 

后台运行

# 开始一个数据库定时备份的后台任务
$ sudo showbackup mysql -s &
  将于每天 03:00 开始执行备份任务...

# 结束后台任务(找出showbackup的PID,杀掉PID)
$ ps -ef | grep showbackup
  25415 16958 0 1:35PM ttys001 0:00.24 /usr/bin/python3 /usr/local/bin/showbackup mysql -s
$ kill -9 25415

使用supervisor运行

# supervisor配置文件
[program:showbackup]
command=/usr/local/bin/showbackup mysql -s ; 程序启动命令
$ supervisorctl start showbackup
  showbackup: started
$ supervisorctl status
  showbackup RUNNING pid 18245, uptime 0 days, 0:0:03

Metadata

Release files for showbackup 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for showbackup 0.1.3
File Size Uploaded
showbackup-0.1.3.tar.gz 12.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for showbackup 0.1.3
File Interpreter ABI Platform
showbackup-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / showbackup-0.1.3.tar.gz

Download URL showbackup-0.1.3.tar.gz
Size 12.7 kB
Tags Source
SHA-256 checksum
How to use checksums
76de6d159d660a9006deff237b582ffd03d9114bb5cd9516cd144af13d0ee4ce
BLAKE2b-256 checksum
How to use checksums
5e216ebc4e7d494f0cbbea210e84b224ea1ecc1d9cc924f189ed5719f0ffa42d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release files / showbackup-0.1.3-py3-none-any.whl

Download URL showbackup-0.1.3-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3fc9e2464bebf704f1dce884cc5038d6ca46cb949a274a6e9f0ffcb963f21a8
BLAKE2b-256 checksum
How to use checksums
74129730436d4c3fd0199de23dadbf88b4d396e0e7c334412c365bb7df4da019
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page