一个简单的python应用程序,它使数据库备份更加容易。

dbackups的Python项目详细描述


概述

此工具的目的是使批量备份数据库变得容易。此服务基于配置文件运行数据库操作。备份公共数据库不需要实现详细信息。

当前支持以下数据库进行备份:

  • PostgreSQL
  • mysql

安装

支持的平台:

  • Linux

设置要求:

  • 设置工具git

要求:

  • python 2.7版
  • 请求

使用virtualenvpip安装。

mkdir -p ~/.venvs virtualenv ~/.venvs/dbackups source ~/.venvs/dbackups/bin/activate pip install dbackups

使用pip安装。

pip install dbackups

配置

这个包的目的是现在备份一个基础结构中的多个数据库。您也可以指定 上传备份的位置。

配置文件:

它使用python`os.path.expanduser('~')`,并转换为以下内容:

vim ~/.dbackups/databases.ini

将每个数据库添加为配置文件的一部分。定义连接和上载选项。

示例

[示例数据库] #如果要为此数据库启用备份 启用=真 #数据库类型 数据库类型=PostgreSQL #数据库的连接参数 db_host=数据库的主机 db_name=用户 数据库用户=Postgres db_pass=密码123 数据库端口=5432

#它们被传递到requests.put方法中(futures将改进此部分) 上传url=https://backups.example.com/backups/ upload_user=备份用户 upload_pass=password543

运行

当前运行从配置文件备份已配置数据库的作业的一种方法是运行 命令

dbackupscron
这将尝试转储和上载配置文件中所有启用的数据库。这是迈向拥有
python调度自己的cron并作为systemd/init服务运行。

###cron脚本 在/etc/cron.daily/

中创建类似的cron脚本
sudo vim /etc/cron.daily/dbackups.cron sudo chmod +x /etc/cron.daily/dbackups.cron

内容:

#!/usr/bash source ~/.venvs/dbackups/bin/activate && dbackupscron

##日志记录

今天这个应用程序的日志记录是由一个配置文件完成的。这可以在 项目根目录。 此文件被此应用程序分发的所有二进制文件使用。

默认情况下,日志可以在程序目录中找到:

~/.dbackups/logs/

dbackupscron脚本有自己的日志,可以方便地对cron脚本进行分类

~/.dbackups/logs/database_backup_cron.log

##期货

  • Windows支持
  • 在database.ini中输入新配置项的脚本
  • 添加功能以将一个数据库克隆到另一个数据库以用于开发目的
  • 添加转储文件的清理。(今天依赖临时目录清理)
  • 一个简单的ui来查看上传的备份,并配置数据库条目。

##数据库故障排除

  • [MySQL](docs/mysql.md)
  • [PostgreSQL](docs/postgres.md)

##报告问题

首先,请记录问题,否则可能永远无法解决!

作为一个公会,以下是一个清单,你的问题检查和提供的东西。

  • 你在运行什么操作系统?
  • 请附上[日志](日志)
  • 你能繁殖吗?
  • 你采取了什么措施来解决这个问题?

##文档问题

有关文档或所需增强功能的问题,请将问题记录在问题所在的页面上,以及有关问题不正确原因的所有详细信息,或文档任何部分所需的澄清。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在wix中为TARGETDIR和SourceDir提供路径?   java在custom starter中访问spring应用程序名称   没有构建带有ActionBarSherlock的java Android项目   java按钮边框不显示   JavaSpring:从表单数据获取文件输入流   javascript通知侦听器服务   java在Junit测试时遇到异常   java从文件中读取特定值   JavaFX:在很短的时间内隐藏窗格   如何在Docker中使用用户定义的引用类来容器化Java应用程序?   java如何更改项目的编译SDKversion?   是否有任何java/spring方法可以使用HttpServletRequest存储当前登录用户的会话信息?   Java中的双大于号(>>)?   Java阵列2x2及其工作原理   java Spring引导ddl自动生成器   java如何利用大量数据传输优化服务器客户端应用程序?   java在使用Windows的FLAG_全屏时ICS和Jelly Bean之间的不同行为   java如何获取当前在回收器视图的线性布局中不可见的视图