多源备份工具:备份文件mysql ldap postgressql到git rsync tar档案

polyarchiv的Python项目详细描述


polyarchiv
==


从多个"源"(按"收集点"组织)备份数据,并将其复制到一个或多个"备份点"。
完整的文档可在此处获得:http://polyarchiv.readthedocs.io/en/latest/

collect point 1:/var/backups/local1/—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————资源2:mysql*http://mygit/backups/local1.git
源3:mysqlar+curl
收集点2:/var/backups/local2本地1
本地2
数据CE 1:文件-----/*ftp://server/backups/local1/2016-01-01.tar.gz
源代码2:mysql*ftp://server/backups/local2/2016-01-01.tar.gz
\??-/

收集点3://var/backups/local3
data of nothing.example.com
/-----------------------------\
源1:文件
源2:PostgreSQL(仅限本地备份)
源3:MySQL
----------/

ckup`定义名为'my backup point'的备份点。


每个收集点必须定义一个基本文件夹和一个或多个数据源,所有这些数据源都在'my collect point.collect'文件中定义:

*包含文件的目录,
*要转储的MySQL或PostgreSQL数据库,
*Dovecot邮件,
*要转储的OpenLDAP数据库。

合并到单个.tar.(gz/bz2/xz)存档中。

*同步:使用rsync将所有文件复制到一个新的(可能是远程的)位置,
*存档:创建存档(.tar.gz/bz2/xz)并将其推送到远程位置,
*滚动存档:创建存档,将其推送到远程位置。删除以前的一些存档文件
(例如,六天内每天一个,三周内每周一个,然后12个月内每月一个)


这些备份点是可选的,您当然只能使用本地收集点,例如当您的收集点存储在NF上时分享。所有参数(尤其是远程位置)都可以取决于日期和时间以及主机名。


每个备份点(收集点或备份点)都与备份频率相关联。
如果给定点具有每日备份频率,但您一天执行两次polyarchiv,则只执行第一次备份。

/>最简单的方法是使用"pip",如果它安装在您的系统上:


$pip install polyarchiv

您也可以从源代码安装它:

$git clone https://github.com/d9pouces/polyarchiv.git
$cd polyarchiv
$python setup.py install


最后,无需安装就可以使用polyarchiv:

$git clone https://github.com/d9poces/polyarchiv.git
$cd polyarchiv
$python run.py

polyarchiv与python 2.7+和python 3.3+兼容。


可用引擎

显示所有可用引擎,用于收集/备份点、筛选器和源(以及它们的选项(如果指定了"--verbose)")

$polyarchiv plugins[-verbose]

/备份点、源和备份状态

$polyarchiv config[-c/my/config/dir][--verbose]

如果设置了频率,则不会运行未过期的收集和备份点(除非指定了"--force")

$polyarchiv backup[-c/my/config/dir][-force]


存储每个源。


$polyarchiv restore[-c/my/config/dir][--force]











./debanize.sh 35;













`-h` ` ` ` ` ` ` `



:显示帮助并退出
*`-v`:verbose模式
*`-f`:强制备份操作,即使最近的备份仍然有效
*`-n`:显示与nrpe兼容的输出
*`-d`:不执行写操作
*`--日志文件`:将所有输出记录到此文件
*`--显示命令`:将所有写操作显示为bash操作ion
*`--confirm commands`:需要对每个操作进行验证
*`--config`:指定另一个config dir
*`--only collect points`:将操作限制到与此标记对应的collect points(可以多次使用)
*`--only backup points`:将操作限制到使用此标记的备份点(可以多次使用)

l收集点,可能每个服务一个)
*为远程服务器创建配置文件(每个服务器一个配置文件)
*运行"polyarchiv config-v"检查配置
*运行"polyarchiv backup--dry--show commands--force"检查执行的脚本
*运行"polyarchiv"备份"在cron中:)

configuration
----


默认配置目录是`/etc/polyarchiv',除非将其安装在virtualenv中,
(然后其默认配置目录是`$virtualenv/etc/polyarchiv`)。
否则,可以使用"polyarchiv-c/my/config/dir"指定另一个配置目录。

此目录应包含用于收集点的配置文件
(如"my廑collect廑point.collect")以及备份点(如"my廑backup廑point.backup")。CT点,从三个来源收集数据:

*postgressql database
*mysql database
*a directory

其名称必须以".collect"结尾。
`[point]`部分定义了收集点的选项(驱动本地备份的引擎、频率,…),而其他部分定义了三个源:

$cat/etc/polyarchiv/my collect point.collect
[point]
engine=git
local路径=/tmp/local
收集点标记=本地
包含备份点标记=*
排除备份点标记=
频率=每日

[source"source帴1"]
engine=postgres sql
host=localhost
port=5432
user=test
password=test testtest
database=testdb
destination帴path=./postgres.sql

[source"source帴2"]
engine=mysql
host=localhost
port=3306
user=test
password=testtest
database=testdb
destination_path=./mysql.sql

[source"source_3"]
engine=rsync
source_path=/tmp/source/files
destination_path=./files


)每个数据源的名称都由"engine"选项定义。
您可以根据需要定义任意多个收集点(每个收集点都有一个或多个数据源)。

备份点更简单,默认情况下只有一个"point"部分。
它们的名称必须以"backup"结尾。
作为git本地repo的远程存储:

$cat/etc/polyarchiv/my-backup-point1.backup
[point]
engine=git
frequency=daily
backup-point-tags=
remote-url=http://gitlab.example.org/group/{name}.git
remote-branch=master
user=mgallet
包含的"收集点"标记将替换为收集点的名称;例如,"我的收集点.collect"收集点的名称显然是"我的收集点")。您可以使用(一点)更复杂的替换规则(请参阅文档)。

nthly:10
backup_point_tags=
remote_url=http://user:p@ssw0rd@myserver.example.org/backups/{name}/
tar_format=tar.xz
包含的_collect_point_tags=*

配置文件可以由不同的用户拥有:当前用户无法读取的文件只需进行签名即可。或。

可用的引擎
----


有多个用于源或收集/备份点的引擎可用。
使用"polyarchiv plugins"显示完整列表,使用"polyarchiv plugins-v"显示其所有配置选项。

-————————————————————————————————————————————————————————————————————————————————————————————————————————将所有操作显示为纯bash脚本
*`--confirm commands`:显示所有操作并在运行之前请求手动确认
*`--dry`:实际上不执行操作
*`--only collect points`(备份或还原):仅应用于这些标签(可以多次使用,并且?或者*小丑是有效的)
*`--仅备份点`(备份或还原):仅应用于具有这些标记的备份点(可以多次使用,并且?或者*jokers是有效的)
*`--skip collect`(仅备份):在备份期间跳过收集步骤
*`--skip backup`(仅备份):在备份期间跳过备份步骤

您可以为所有类型的引擎添加自己的引擎:

*备份点(必须继承自"polyarchiv.backup-points.backuppoint"),
*收集点(必须继承自"polyarchiv.collect-points.collectpoint"),
*筛选器(必须继承自"polyarchiv.sources.source"),
*源(必须继承自"polyarchiv.filters.filefilter"。

若要使用它们,必须将它们安装在当前的pythonpath中。
您可以直接使用配置文件中的点路径:

$cat/etc/polyarchiv/my collect.collect
[点]
engine=my包装。Myengines。mycollectpoint
local_path=/tmp/local

[source"source_1"]
engine=mypackage.myengines.mysource


>您还可以将它们注册为新的设置工具入口点:

*`polyarchiv.sources`,
*`polyarchiv.backup_points`,
*`polyarchiv.collect_points`,
*`polyarchiv.filters`。

键是配置文件中使用的别名,值是虚线路径。

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

推荐PyPI第三方库


热门话题
令牌“;”上的java语法错误,<预期   java Log4j在未设置ThreadId时如何使用正确的文件名   java通过将模型类的实例传递给comparable和将包装器传递给comparable之间有什么区别?   javafx Java MVC InvalizationListener   对于SD卡导出,文件的java I get父目录不可写   swing如何在Java的JTextArea中追加数据?   java在servlet中保存和检索用户socket   java资源包是否引用其他字符串?   java Hibernate OnetoMany映射(按日期范围)?   java如何基于生产者线程状态停止消费者线程   java bean类[org.springframework.batch.item.file.FlatFileItemReader]的属性“parameterValues”无效   java在不同索引的两个字符串中查找匹配字符   java为什么使用Guice提供程序而不是普通注入   Java包含jar文件命令行   java我不希望我的函数返回null。最好的解决方案是什么?   java在JNI的内存和速度方面会受益吗?   java Cors错误一旦在Heroku中部署Angular和SpringBoot应用程序   java如何解决[子类]中的私有访问   java类<List>或类<List<?>>   java如何测量宽度和高度,然后在添加视图之前更改参数?