多源备份工具:备份文件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线程,它们在Android中似乎被卡住了   尝试保存嵌套片段的状态时出现java异常[对于键安卓:target\u state,片段不再存在]   我应该使用什么API或框架在Java中实现这个消息传递系统?   java JPA和序列化行为   使用Java Spring i18n翻译长文本的最佳实践   与字符串÷x%匹配的java正则表达式   春季冬眠   java使用ArrayList在ListView中出错   java解析bufferedReader数据,在某些字符处停止   我尝试在字符串中计数字符(java),但我的解决方案不起作用   java无法为本地开发在Google App Engine上设置默认的App Identity服务帐户   在Java Swing游戏中重置倒计时计时器不工作+JDialog/JOptionPane   Maven找不到intern java文件的符号错误   java获取XML包中返回的SQLException消息?   java Datanucleus类型转换插件   java bouncycastle PKCS12密钥库“最大密码长度”   java使用“==”语句   java在一个数组中包含多个变量?   java获取HttpResponseCode=400和HttpOperationFailedException