{ "info": { "author": "Bart Feenstra", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: System Administrators", "Topic :: Security :: Cryptography", "Topic :: System :: Archiving :: Backup", "Topic :: System :: Recovery Tools" ], "description": "\nBackuppy\n========\n\n\n.. image:: https://travis-ci.org/bartfeenstra/backuppy.svg?branch=master\n :target: https://travis-ci.org/bartfeenstra/backuppy\n :alt: Build Status\n\n.. image:: https://coveralls.io/repos/github/bartfeenstra/backuppy/badge.svg?branch=master\n :target: https://coveralls.io/github/bartfeenstra/backuppy?branch=master\n :alt: Coverage Status\n\n.. image:: https://img.shields.io/badge/Python-2.7%2C%203.5%2C%203.6%2C%20PyPy-blue.svg\n :target: https://img.shields.io/badge/Python-2.7%2C%203.5%2C%203.6%2C%20PyPy-blue.svg\n :alt: Backuppy runs on Python 2.7, 3.5, and 3.6, and on PyPy\n\n.. image:: https://img.shields.io/pypi/v/backuppy.svg\n :target: https://pypi.org/project/backuppy/\n :alt: Latest release\n\n.. image:: https://img.shields.io/github/license/bartfeenstra/backuppy.svg\n :target: https://img.shields.io/github/license/bartfeenstra/backuppy.svg\n :alt: Backuppy is released under the MIT license\n\n\nAbout\n-----\n\nBackuppy backs up and restores your data using rsync, allowing different routes to the same, or different destinations.\n\nThe following instructions can be executed in any system Python environment, but you may want to use a\n`virtual environment `_. Alternatively, some actions can be performed using\n`tox `_ as well, which produces its own virtual environments in ``.tox/py**``.\n\nLicense\n-------\n\nBackuppy is released under the `MIT <./LICENSE>`_ license.\n\nDocumentation\n-------------\n\nExtended API documentation is available at `Read the Docs `_.\n\nUsage\n-----\n\nRequirements\n^^^^^^^^^^^^\n\n\n* Python 2.7+\n\nInstallation\n^^^^^^^^^^^^\n\nIn any Python environment, run ``pip install backuppy``.\n\nCommand line\n^^^^^^^^^^^^\n\n.. code-block:: bash\n\n $ backuppy --help\n usage: backuppy [-h] {backup,restore,init} ...\n\n Backuppy backs up and restores your data using rsync.\n\n positional arguments:\n {backup,restore,init}\n backup Starts a back-up.\n restore Restores a back-up.\n init Initializes a new back-up configuration.\n\n optional arguments:\n -h, --help show this help message and exit\n\nConfiguration\n^^^^^^^^^^^^^\n\nConfiguration is written in `YAML `_ or `JSON `_\\ ,\nand can be stored anywhere as ``*.yml``\\ , ``*.yaml``\\ , or ``*.json`` files. An example of the smallest possible configuration\nfile:\n\n.. code-block:: yaml\n\n source:\n type: path\n configuration:\n path: ./source\n target:\n type: path\n configuration:\n path: ./target\n\nTo create a new back-up configuration without writing code, run ``backuppy init`` and follow the interactive wizard.\n\nTo tweak Backuppy's output:\n\n.. code-block:: yaml\n\n # An optional human-readable name for this back-up. It will default to the configuration file name.\n name: Test\n # Whether or not to generate verbose output. Defaults to `false`.\n verbose: true\n # Python logging configuration. This is specific to the Python version you are using. Defaults to `null` for no logging.\n # See https://docs.python.org/3.6/library/logging.config.html#logging-config-dictschema.\n logging:\n version: 1\n # ...additional logger and handler configuration.\n\nBackuppy supports plugins for back-up source and target locations, as well as notifications.\n\nTo configure a local path-based target:\n\n.. code-block:: yaml\n\n type: path\n configuration:\n # The local path to the target directory. If the path is relative, it will be resolved against the location of\n # the configuration file.\n path: ./target\n\nTo configure a remote target over SSH:\n\n.. code-block:: yaml\n\n type: ssh\n configuration:\n # The host to connect to.\n host: example.com\n # The SSH port to use. Defaults to 22.\n port: 22\n # The name of the user on the remote system to log in as.\n user: bart\n # The absolute path to the target directory on the remote. \n path: /home/bart/target\n\nThe SSH key must have been accepted already, and the host must support Bash.\n\nTo specify multiple routes to the same target, such as one over a local network mount, and a fallback over SSH:\n\n.. code-block:: yaml\n\n target:\n type: first_available\n configuration:\n targets:\n - type: path\n configuration:\n path: ./target\n - type: ssh\n configuration:\n host: example.com\n user: bart \n path: /home/bart/target\n\nTo configure user-facing notifications:\n\n.. code-block:: yaml\n\n # An optional list of zero or more notification methods. Message types are:\n # - \"state\": unimportant, mass-generated, or debugging output which may be ignored.\n # - \"inform\": informative messages, such as those marking the start of an action.\n # - \"confirm\": confirmation messages, such as those marking the successful completion of an action.\n # - \"alert\": important messages that warrant someone's attention, such as in case of errors.\n notifications: []\n\nTo display notifications to stdout and stderr (terminal output):\n\n.. code-block:: yaml\n\n notifications:\n - type: stdio\n\nTo display notifications using ``notify-send``\\ :\n\n.. code-block:: yaml\n\n notifications:\n - type: notify-send\n\nTo process notifications through custom CLI commands:\n\n.. code-block:: yaml\n\n notifications:\n - type: command\n # Commands are specified as CLI arguments. `fallback` is required if any of the others are missing.\n configuration:\n state:\n - echo\n - \"{message}\"\n inform:\n - echo\n - \"{message}\"\n confirm:\n - echo\n - \"{message}\"\n alert:\n - echo\n - \"{message}\"\n fallback:\n - echo\n - \"{message}\"\n\nTo append notifications to files:\n\n.. code-block:: yaml\n\n notifications:\n - type: file\n # Paths must be absolute. `fallback` is required if any of the others are missing.\n configuration:\n state:\n - /var/log/backuppy\n inform:\n - /var/log/backuppy\n confirm:\n - /var/log/backuppy\n alert:\n - /var/log/backuppy\n fallback:\n - /var/log/backuppy\n\nDevelopment\n-----------\n\nRequirements\n^^^^^^^^^^^^\n\n\n* The generic requirements documented earlier.\n* Bash (you're all good if ``which bash`` outputs a path in your terminal)\n\nInstallation\n^^^^^^^^^^^^\n\nRun ``git clone https://github.com/bartfeenstra/backuppy.git``.\n\nIf you wish to contribute code changes, you may want to fork this project first, and clone your own forked repository\ninstead.\n\nBuilding\n^^^^^^^^\n\nIn any Python environment, run ``./bin/build-dev``.\n\nWith tox, run ``tox --develop --notest``.\n\nTesting\n^^^^^^^\n\nIn any Python environment, run ``./bin/test``.\n\nWith tox, run ``tox --develop``\n\nViewing documentation\n^^^^^^^^^^^^^^^^^^^^^\n\nIn any Python environment, run ``./bin/build-docs``\\ , and open ``./docs-build/index.html``.\n\nFixing problems automatically\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIn any Python environment, run ``./bin/fix``.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bartfeenstra/backuppy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "backuppy", "package_url": "https://pypi.org/project/backuppy/", "platform": "", "project_url": "https://pypi.org/project/backuppy/", "project_urls": { "Homepage": "https://github.com/bartfeenstra/backuppy" }, "release_url": "https://pypi.org/project/backuppy/0.4.0/", "requires_dist": [ "paramiko (~=2.4.0)", "pyaml (~=17.12.1)" ], "requires_python": "", "summary": "Backuppy backs up and restores your data using rsync.", "version": "0.4.0" }, "last_serial": 3992814, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "09aadac5790a720432661cafd8e8834e", "sha256": "ff412328a7ddc97611b42f7fac7bb069cc36d79fa6d1f2bcaeb79faec3f68acc" }, "downloads": -1, "filename": "backuppy-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "09aadac5790a720432661cafd8e8834e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21735, "upload_time": "2018-03-10T17:35:08", "url": "https://files.pythonhosted.org/packages/6e/d8/aff9d234e50123cbd5a70606e3e08d6e74f33eb0031354eb75080abe8d74/backuppy-0.1.0-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "76ba055a8e313a6412477425839e2d81", "sha256": "89c917914ae500ba9a52b088bc2f8105f99f2c04e43edb048735e115ccdad309" }, "downloads": -1, "filename": "backuppy-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "76ba055a8e313a6412477425839e2d81", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21518, "upload_time": "2018-03-10T18:24:30", "url": "https://files.pythonhosted.org/packages/0f/ce/a6432f0099478ac2fe2e515e5ff11b05b47bb0e482ea8ebe2e77b0ce98b6/backuppy-0.1.1-py2.py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d5bb35267f2ab533c560fc3f9f667646", "sha256": "26d85d213bace75975e0b2219ab631bc7d6ea6e45217248dc580e0f5e65a4953" }, "downloads": -1, "filename": "backuppy-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5bb35267f2ab533c560fc3f9f667646", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24930, "upload_time": "2018-03-13T14:55:25", "url": "https://files.pythonhosted.org/packages/51/74/7b972283e28d2a1808c22a3f794a2989ddcb2f6cb1584017cf432e970d31/backuppy-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0dc86db16fd598e8511da554ab04d737", "sha256": "68d685536642fec1b729d8d1740e227ae3e7adaab92c3036cdb87082cfca88aa" }, "downloads": -1, "filename": "backuppy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0dc86db16fd598e8511da554ab04d737", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15402, "upload_time": "2018-03-13T14:55:26", "url": "https://files.pythonhosted.org/packages/38/dc/3b88fc91e6de0d4fcc4eee281063dcad4c85fe3c7ff1dc926e2204c98c46/backuppy-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "0c6859a7c568c32e0ff366efad615328", "sha256": "66b53f230844c1ab3409da70c4c4518318feac2b4212e54b6ff3cf03329d65cd" }, "downloads": -1, "filename": "backuppy-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c6859a7c568c32e0ff366efad615328", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30693, "upload_time": "2018-03-16T16:18:10", "url": "https://files.pythonhosted.org/packages/cc/57/102962c5e828f57310b6bd8c8796586e00d77c6bc9705155ec59cbc7bfe5/backuppy-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4bbb3fcc0a582079cbb71b50d055feee", "sha256": "0b04ba90a4b98e5b6d83df562e1838174360627e0bc697a72ca49dfe840ef10b" }, "downloads": -1, "filename": "backuppy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "4bbb3fcc0a582079cbb71b50d055feee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20311, "upload_time": "2018-03-16T16:18:12", "url": "https://files.pythonhosted.org/packages/37/19/4dc954625a2064e3f5500c72bcd42d77e844f272a7ad64e9b058cf71a9b0/backuppy-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ab6c245b55058fc2b7d94c5d5b872fcc", "sha256": "86d0fcdf9890dfb1d8e671538d0c1fe627ad2d380df887e38e950cd7b9c8a1cf" }, "downloads": -1, "filename": "backuppy-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ab6c245b55058fc2b7d94c5d5b872fcc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36883, "upload_time": "2018-06-23T11:48:17", "url": "https://files.pythonhosted.org/packages/78/80/2c48b45f5a241d63845aa42633cfb3c8817818dd836aebd43fd64f083df2/backuppy-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aef22f18293d4c8fa441dc379998f2ee", "sha256": "f2796190852a21bd731fb1bef7071d393467e8d5db270ba5d8661df02d200152" }, "downloads": -1, "filename": "backuppy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "aef22f18293d4c8fa441dc379998f2ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26894, "upload_time": "2018-06-23T11:48:18", "url": "https://files.pythonhosted.org/packages/f6/5c/a15a9a48af1ca96eef521ef7daa4562d463510152c9dff66aeb37fd98f72/backuppy-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ab6c245b55058fc2b7d94c5d5b872fcc", "sha256": "86d0fcdf9890dfb1d8e671538d0c1fe627ad2d380df887e38e950cd7b9c8a1cf" }, "downloads": -1, "filename": "backuppy-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ab6c245b55058fc2b7d94c5d5b872fcc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36883, "upload_time": "2018-06-23T11:48:17", "url": "https://files.pythonhosted.org/packages/78/80/2c48b45f5a241d63845aa42633cfb3c8817818dd836aebd43fd64f083df2/backuppy-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aef22f18293d4c8fa441dc379998f2ee", "sha256": "f2796190852a21bd731fb1bef7071d393467e8d5db270ba5d8661df02d200152" }, "downloads": -1, "filename": "backuppy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "aef22f18293d4c8fa441dc379998f2ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26894, "upload_time": "2018-06-23T11:48:18", "url": "https://files.pythonhosted.org/packages/f6/5c/a15a9a48af1ca96eef521ef7daa4562d463510152c9dff66aeb37fd98f72/backuppy-0.4.0.tar.gz" } ] }