Bakthat is a MIT licensed backup framework written in Python, it's both a command line tool and a Python module that helps you manage backups on Amazon S3/Glacier and OpenStack Swift. It automatically compress, encrypt (symmetric encryption) and upload your files.
$ bakthat backup images
Backing up images
Password (blank to disable encryption):
Compressing...
Traceback (most recent call last):
File "/usr/local/bin/bakthat", line 9, in <module>
load_entry_point('bakthat==0.6.0', 'console_scripts', 'bakthat')()
File "/usr/local/lib/python2.7/dist-packages/bakthat/__init__.py", line 649, in main
app.run()
File "/usr/local/lib/python2.7/dist-packages/aaargh/app.py", line 176, in run
return func(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/bakthat/__init__.py", line 324, in backup
tar.add(filename, arcname=arcname, exclude=_exclude)
File "/usr/lib/python2.7/tarfile.py", line 2002, in add
recursive, exclude, filter)
File "/usr/lib/python2.7/tarfile.py", line 1995, in add
self.addfile(tarinfo, f)
File "/usr/lib/python2.7/tarfile.py", line 2024, in addfile
copyfileobj(fileobj, self.fileobj, tarinfo.size)
File "/usr/lib/python2.7/tarfile.py", line 277, in copyfileobj
buf = src.read(remainder)
IOError: [Errno 5] Input/output error