Backup data to OpenStack Swift
Project description
This utility is used to backup data to OpenStack Swift. It provides a command interface and backup rotation. It depends on a simple client library called swiftsc.
Requirements
Python 2.6 later or Python 3.2 later
swiftsc 0.5 later
Setup
$ git clone https://github.com/mkouhei/backup2swift $ cd backup2swift $ sudo python setup.py install
or via PyPI:
$ virtualenv --no-site-packages venv $ pip install backup2swift
Usage
Firstly setup configuration file. You may save the file name of your choice as setting. Example is as folloing:
[swift] auth_url: https://example.org/auth/v1.0 username: username password: password [backup] rotate_limit: 10
The “auth_url” is swift authentication url, “username” and “password” are swift’s. If you need to ignore verification of SSL certification, append option as “ignore_verify_ssl_certification: True” to [swift] section. “rotate_limit” is limitation count of rotation for backup. If this value is 3, backup is as folloing;
backup target file name: example.txt
Firstly backup object is created as same name of backup target file (that is “example.txt”):
$ bu2sw -c bu2sw.conf -p example.txt $ bu2sw -c bu2sw.conf -l example.txt
Secondly backup object is created as same name of backup target file, and first backup object is renamed added timestamp as “example.txt_YYYYMMDD-hhmmss”.:
$ bu2sw -c bu2sw.conf -p example.txt $ bu2sw -c bu2sw.conf -l example.txt example.txt_20130510-113930
Backup objects named with timestamp are created until “rotate_limit” value. Old backup object is remove when execute backup over limitation.:
$ bu2sw -c bu2sw.conf -p example.txt $ bu2sw -c bu2sw.conf -l example.txt example.txt_20130510-113930 example.txt_20130510-113941 example.txt_20130510-113953 $ bu2sw -c bu2sw.conf -p example.txt $ bu2sw -c bu2sw.conf -l example.txt example.txt_20130510-113941 example.txt_20130510-113953 example.txt_20130510-114110
See also man manual of bu2sw(1).
Contribute
Firstly copy pre-commit hook script.:
$ cp -f utils/pre-commit.txt .git/hooks/pre-commit
Next install python2.6 later, and python-swiftsc, py.test. Below in Debian GNU/Linux Sid system,:
$ sudo apt-get install python python-swiftsc python-pytest pep8
Then checkout ‘devel’ branch for development, commit your changes. Before pull request, execute git rebase.
See also
ToDo
create documents
History
0.8.2 (2014-05-10)
Refactoring.
Apply tox for unit test.
Support Python 3.4, PyPI.
0.8.1 (2014-01-10)
Append Python 3 classifier to setup.py
Refine description.
Thanks, Thomas Goirand.
Bug fix
ImportError: No module named magic in travis-ci
0.8 (2013-07-27)
read the file from stdin pipe
Omitted option of –container
0.7 (2013-06-14)
support Python 3.2, 3.3
0.6 (2013-06-03)
support authentication of keystone
0.5 (2013-05-30)
New features
upload / retrieve / delete in parallel
support to delete multiple objects
Bug fix
fixes fail to raise IOError if default config file exists
fail to use “rotate_limit” option on configuration file
support pep8 less than version 1.3
0.4 (2013-05-29)
New features
support default config file
specify any container
support to retrieve multiple objects
specify multiple upload files
Bug fix
fixes spelling error
remove pychecker for travis
0.3.2 (2013-05-24)
fixes fail backup and rotate with verifing default SSL certificate
0.3.1 (2013-05-20)
add option to ignore verifing of SSL certificate
0.3 (2013-05-17)
add retrieve backup object command
0.2 (2013-05-10)
add backup object command
fixes man manual
0.1.3 (2013-05-10)
applied changing api of swiftsc.client.is_container()
add how to setup and usage
0.1.2 (2013-05-09)
fixes #3 failed to execute in python2.6
0.1.1 (2013-05-08)
fixes #1 fail to execute firstly when there is no container
0.1 (2013-05-08)
first release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.