将数据库备份到openstack对象存储swift的工具

swiftbackmeup的Python项目详细描述


#swiftbackmeup

一个允许创建项目备份并将其上载到openstack swift(对象存储)的实用程序。

todo

-[]添加加密数据的可能性
-[]添加对amazon s3的支持

能够备份项目并将这些备份上载到swift(openstack object store)。

`swiftbackmeup`是配置驱动的。每个需要
备份的项都在配置文件中描述。




\允许从对象存储清除备份



`SwiftbackMeup`是配置驱动的。配置文件
(按优先级顺序):

1。在命令行中指定的那个(`swiftbackmeup--conf/path/to/conf.yml`)
2。在环境变量"$swiftbackmeup_configuration"中指定的值
3。"/etc/swiftbackmeup.conf`



有多个项;即mydb_prod`、`mydb_prepod`、`mydb_test`

`swiftbackmeup backup`将备份所有这三个项

`swiftbackmeup backup--items mydb_prod`将只备份`mydb_prod`

**注意**:此命令与任何其他命令(如`--list`和`--list items



默认情况下,它将列出每个项目的所有备份。使用
items`参数可以限制项。

```
ST改性
+——+——+——+————+————+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————p.sql 2016-06-24t09:40:30.377840
+——+——+——+————+————+—————————————————————————————————————————————————————————————————————————————————————————————————————————---————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| 2016-06-24t09:40:29.719150
+——+——+——+——+——+——+——+——+——+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————n使用"--items"参数进行限制。

```
Iner swift伪文件夹订阅
+——+——+——+——+——+——+——+——+——+——+————+——————+———————————————————————————————————————————————————————————————————————————————第n周,每周
快速备份数据库/postgresql本地备份快速备份每日、现在、每月、每周;快速备份--列表项--项DB1
+——+——+——+————+——+————+————+————+————+—————————————————————————————————————————————————————————————————————————————————|
+——+——+——+————+————+——————+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————--+——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————r/>每天:
保留:7
单位:天
现在:
保留:1
单位:项

备份:
-名称:db1
数据库:db1
订阅:
-每天
-现在
````

如果用户只执行"快速备份清除"的最后一项将保留远程存储上的db1备份,另一个将被清除(即--mode now是
默认值)



列出在不使用"--noop"项的情况下运行时将清除的项。

```
|上次修改
+——+——+——+————+————+—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————.dump.sql 2016-06-24t10:36:12.295490
db1 db1/db1_.dump.sql 2016-06-24t10:36:14.780210
db1/db1 db1/db1.dump.sql 2016-06-24t10:36:17.117850
2016-06-06-24T10:2016-24T10:2016-06-24t10:36:36:16 MEUP/开关2016-06-24t09:40:30.377840
快速备份快速备份/快速备份快速备份swifftbackmeup/swifftbackmeup
2016-06-24t10:36:13.2162240;
快速备份快速备份/快速备份.dump.sql 2016-06-24t10:2016-06-24t10:2016-06-24t10:2016-06-24t10:24;快速备份ftbackmeup/swifftbackmeup 36:15.799500快速备份|快速备份/swiftbackmeup_.dump.sql 2016-06-24t10:36:17.923470
+——+——+——+——+——+————+——+————————————————————————————————————————————————————————————————————————————————-——————————————————————————————————————————————————————————————————————————————————————/>| DB1 DB1/DB1_20160624054028.dump.sql 2016-06-24t09:40:29.719150清除(noop)
DB1 DB1/DB1_20160624063610.dump.sql 2016-06-24t10:36:12.295490清除(noop)
DB1/DB1_.dump.sql 2016-06-24t10:36:14.780210清除(noop)
快速备份快速备份/快速备份22016-06-24t09:40:30.377840清除(noop)
swifftbackmeup swifftbackmeup/swifftbackmeup/swifftbackmeup swifftbackmeup/swifftbackmeup.dump.sql 2016-06-24t10:36:13.2162240清除(noop)
swifftbackmeup-06-06-24040406240240240240240240240240240240240240240240540540540540540124;2016-06-24T10:36:15.799500采购GED(noop)
+——+——+——+————+——+——+——+——+——+————————————————————————————————————————————————————————————————————————————————————————————————————————————

````
|备份文件上次修改
+——+——+————+————+————+—————————————————————————————————————————————————————————————————————————————————————————————————————————1 DB1/DB1_.dump.sql 2016-06-24T10:36:12.295490
DB1 DB1/DB1_.dump.sql 2016-06-24T10:36:14.780210
DB1/DB1_.dump.sql 2016-06-24T10:36:17.117850|迅捷备份迅捷备份/迅捷备份迅捷备份/迅捷备份.dump.sql 2016-06-24to09:40:30.377840;
;《迅捷备份迅捷备份/迅捷备份;
迅捷备份2016-06-24t10:36:13.2162240
/>迅捷备份迅捷备份/迅捷备份迅捷备份/迅捷备份2016-06-06-2412;迅捷备份U 20160624063614.dump.sql 2016-06-24T10:36:15.799500
--------------------+------------+——————————————————————————————————————————————————————————————————————————————————————————————————--+—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————SQL 2016-06-24T10:36:14.780210清除
swifftbackmeup swifftbackmeup/swifftbackmeup/swifftbackmeup/swifftbackmeup/swifftbackbackmeup/swifftbackmeup/swifftbackmeup/swifftbackmeup/swifftbackmeup/swifftbackmeup/swifftbackmeup/swifftbackmeup/swifftbackbackmeup/swifftbackbackbackbackbackmeup/swifftbackbackbackbackbackbackbackmeup/swifftbackbackbackbackbackbackbackbackbackmeup/swifftbackbackbackbackbackbackbackbackbackbackbackback240清除
快速备份up swiftbackmeup/swiftbackmeup.dump.sql 2016-06-24t10:36:15.799500已清除
+——+——+——+————+——————+—————————————————————————————————————————————————————————————————————————---————————————————————————————————————————————————————————————————————————————————————————————————————————————————1/DB1_.dump.sql 2016-06-24T10:36:17.117850
swiftbackmeup swiftbackmeup/swiftbackmeup.dump.sql 2016-06-24T10:36:17.923470
+——+——————————————————————————————————————————————————————————————————————————
要还原的项的名称以及从中还原该项的版本|上次修改时间
+——+——+——+————+————+—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————0624063616.dump.sql 2016-06-24t10:36:17.923470
+——+——+——+——+——+——+————+—————————————————————————————————————————————————————————————————————————————————————————————————————————tabase"db1"到远程存储为"db1/db1"的转储文件20160624063615.dump.sql`





y
-现在
-tag1
-mydatabasenumberone
```

*` daily`:如果要每天备份数据库,默认为7天的保留期
*`weekly`:如果要每周备份数据库,默认为4周的保留期
*`monthly`:如果要每月备份数据库,默认为默认保留6个月
*`now`:如果要在t时刻备份数据库,则默认为10个具有相同名称模式的备份。



modes目前只了解两个参数:

*`retention`:应保留备份的单元数,否则清除。
*`单位:保留表示的单位。可能值:`day`,`item`.默认的"day"。
*`pattern`:稍后将在datetime.format中使用的模式。



\naming configuration

>可以通过多种方式指定备份的文件名。


1。备份是具有匹配模式的标记的一部分。



默认情况下,名称将是模式。但是可以指定两个参数,即backup filename前缀和backup filename后缀,它们实际上有一个
的全名。

so name相当于:

````
'%s%s'%(backup filename前缀,modes.pattern,backup filename后缀)
```


示例:

``
备份:
-名称:mydatabase
数据库:mydatabase
订阅:
-每日
备份文件名前缀:'mydatabase'
备份文件名后缀:'.dump.gz'
```

2。备份是具有匹配模式(或不匹配模式)的标记的一部分



>无论备份是否是标记的一部分,都可以通过指定"backup_filename`

````
备份来覆盖最终备份文件名:
-name:mydatabase
database:mydatabase
subscriptions用法:
-daily
backup\u filename:'mydatabase\u backup.dump.gz'
````

|
--——————————————————————————————————————————————————————————————————————————————————————————————| none openstack租户名称
os_u auth_u url global none openstack身份验证url
store_type global,backup none要上载备份的存储类型到(可用:swift)
创建容器全局,备份真如果容器不存在,是否创建
清除容器全局,备份假如果清除远程对象
swift继续iner global,backup backup存储数据库备份的swift容器的名称
swift_pseudo_folder global,backup none如果需要,则为pseudo folder



文件系统参数|作用域默认描述ory global,backup/var/tmp存储数据库备份的目录
p_file name backup none命名备份文件(将覆盖任何模式模式)
backup filename backup none备份文件名的前缀(将附加模式模式模式和备份filename后缀)
|备份文件名的后缀备份无备份文件名的后缀(备份文件名前缀和模式模式将加在前面)



|
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————|传递给dump命令的参数
database backup none要备份的数据库的名称
user global,backup none user连接到数据库系统|
密码全局,备份无连接到数据库系统的密码
主机全局,备份无主机连接到数据库系统
端口全局,备份无e连接到数据库系统的端口
工作方式:

*`database:all`:这将使"swiftbackmeup"依赖于"pg_dumpall"程序。因此,它允许访问诸如(`roles_only`,`globals_only`,等等…)
*`database:mydatabase`:这将使'swiftbackmeup`依赖于'pg_dump'程序。

----————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————pall
roles only backup(the all db)none应该——角色只传递给pg_dumpall
schema only backup(the all db)none应该——schema只传递给pg_dumpall
table只会将espace传递给pg dumpall






配置文件示例

` `
` ` `


os租户_租户_用户名:os
os _密码:os
os
os租户租户_租户_名称:os _租户容器:备份
swift_pseudo_文件夹:示例

create_container:true
purge_container:false


output_directory:/var/tmp
clean_local_copy:true


模式:
每天:
保留:7
单位:天
模式:"%y%m%d"
每周:
保留:28
单位:天
pattERN:"%y%m%d-%u"
每月:
保留:31
单位:天
模式:"%y%m"
现在:
保留:10
单位:项
模式:"%y%m%d%h%m%s"



备份:

名称:mytestfile
类型:file
路径:/tmp/文件
备份文件名e_prefix:"mytestfile"
备份文件名_后缀:".bk"
订阅:
-现在
-每天
-每月

-名称:mygitrepo
类型:git
路径/srv/git/mygitrepo
分支:所有
备份文件名_prefix:"mygitrepo"
backup_filename_后缀:'.bundle'
订阅:
-现在
-每天
-每月

-名称:swiftbackmeup_mariadb
类型:mariadb
数据库:swiftbackmeup
主机:127.0.0.1
用户:root
密码:passpassass
backup_filename_prefix:'swiftbackmeup_mariadb_u'
备份文件名_后缀:'.dump.sql'
swift_pseudo_文件夹:swiftbackmeup_mariadb
订阅:
-现在
-每天
-每月

-名称:swiftbackmeup_postgresql
类型:postgresql
数据库:swiftbackmeup
备份文件名前缀:"swiftbackmeup\u postgresql"
转储选项:-z9-fc
备份文件名后缀:".dump"
swift\u伪文件夹:swiftbackmeup\u postgresql
订阅:
-现在
-每天
-每月
```

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

推荐PyPI第三方库


热门话题
java Cassandra docker无法通过JMX连接   java以编程方式在图片模式下启用图片   java访问json数组中的json数组   swing Java 2D API:空指针异常   java Storm 2.0.0内存不足   java为什么Splitter在Spring Integration中处理集合项时直接返回集合?   java Spring启动到Postgres数据库驱动程序问题   java如何将对象围绕其中心旋转90度?   无法返回变量。“java:找不到变量”   通过BigInteger进行Java基转换   在Java中获取日期格式   java构建具有依赖关系的jar并将其绑定到tar中。gz使用maven组装   java为什么Guice在main中从UncaughtExceptionHandler抛出$ComputeException?   spring升级到Java7时有哪些陷阱   java从JTable向数组获取值   java Android在启动新活动时会杀死多个以前的活动   postgresql是否可以在批处理过程中运行java命令?   安卓使用Java代码创建文件上传请求   java一些元素神奇地没有从ArrayList中删除