{ "info": { "author": "Johnny Wezel", "author_email": "dev-jay@wezel.name", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Operating System :: POSIX", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: System :: Archiving :: Backup", "Topic :: System :: Archiving :: Mirroring", "Topic :: Utilities" ], "description": "backup\n======\n\nIntroduction\n------------\n\nThis is a simple backup script for systems maintained by package management software providing a detailed manifest\nabout installed files. It uses the repository of system-installed files to automatically exclude them from backup\nbecause those files can (and should) be reinstalled easily with the package manager. The program detects the package\nmanager automatically and makes use of its manifest of installed files. At the moment, *portage* (on *Gentoo Linux*\nsystems and derivations) and *dpkg* (*Debian* and derivations) are supported. More systems can be supported with\nplugins.\n\nConfiguration\n-------------\n\nBackup uses a configuration file (``~/.local/etc/backup`` if not overridden on the command line) for its required\ninformation in order to be run with a simple command for daily use. The configuration file is in the\n`YAML `_ format. The format is simple enough to be described by an example::\n\n roots:\n - /\n prune:\n - /tmp\n - /proc\n - /sys\n - /dev\n - /mnt\n - /var/tmp\n - /var/run\n - /var/cache\n - /run\n - /lost+found\n destination:\n user: backup\n password: hj983sh34\n host: backuphost\n port: 22\n directory: /backup/{HOSTNAME}/rsync-backup\n generations: 7\n\nThere are three sections (*root*, *prune* and *destination*). In the *root* section, a list of directories to be\nincluded in the backup are stated. Each list element is on a separate line and begins with \"- \" (the space after the\ndash is required).\n\nThe *prune* section contains a list of directories to be excluded from the backup. If it is missing, the following\ndirectories are excluded by default: /tmp, /proc, /sys, /dev, /mnt, /var/tmp, /var/run, /var/cache, /run, /lost+found.\n\nIn the *destination* section, a couple of parameters specify where the backup has to be written to. Since *rsync* is\ncapable of writing to remote hosts through the use of *ssh*, three parameters, *user*, *host* and *port* specify the\nnecessary information for reaching a remote host. As of version 0.9, the *host* parameter is required, meaning only\nremote backups are possible. This will change in later versions, allowing local backups. The parameter *directory*\nspecifies the base destination directory on the remote host. Parameter *port* has a default of 22. As you can see in the\nexample, there can be variable substitution expressions in the form of ``{VARIABLE}``. The expression will be\nreplaced by the respective environment variable. The parameter *generations* specifies how many generations of old\nbackups are to be retained before they are removed. The default is 30. If a private key is required to log in to the\nremote host, it can be specified with a ``key: key-file`` entry in the *destination* section.\n\nBackup organisation\n-------------------\n\nTo enable differential backups, the backup is stored under a subdirectory of the destination directory specified in the\n*destination* section of the configuration. This subdirectory has a name resembling a time stamp with date and time,\nlike ``2014-02-12-03:12:26`` where the first three numbers are the date in ISO-format and the last three numbers are the\ntime in 24-hour-format.\n\nThe new backup is stored in reference to the last backup. All changed files are stored normally. Files which have\nnot changed since the last backup are simply hard-linked to the corresponding file in the old backup. This way they\ndon't take any addition space on the backup medium (apart from the directory entry). This is done by *rsync* by the\nuse of the ``--link-dest`` option.\n\nUsage\n-----\n\nThe program is intended to be run by the simple command::\n\n backup\n\nThere are some options for testing and one-time use:\n\n\n -h, --help shows a help message and exits\n --config file, -c file to specify the path to an alternative configuration file (default: ~/.backup)\n --version, -V displays the program version\n --log-level level, -L level to set the log level. Level is one of DEBUG, INFO, WARNING, ERROR, or\n CRITICAL. DEBUG shows the most detail while CRITICAL shows almost nothing.\n (default: INFO)\n --log-file file, -l file to set log file (default: /var/log/backup)\n\nPer-directory exclusion\n-----------------------\n\nTo exclude a directory from backup, simply create a file named ``.no-backup`` in it.\n\nInstallation\n------------\n\nThe software can be installed easily from the Python software repository, either on the command line or by downloading\nthe package and installing it explicitly.\n\n.. note::\n\n Python packages should not be installed using *pip* or *easy_install* globally in the system environment under\n Gentoo Linux. There is a carefully crafted system to make system-provided Python scripts available under Python 2 as\n well as Python 3 which is disturbed by packagages deliberately installed by *pip* or *easy_install*. Since\n backups are done almost always by *root*, the software should be installed in *root*'s home directory, ``/root``.\n This is done with *pip*'s ``--user`` switch. Another way is to use *pip*'s ``--root`` option and adjust\n ``PYTHONPATH``.\n\nInstallation using *pip*\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nOn the command line, type::\n\n pip install --user jw.backup\n\nExplicit Installation from a downloaded package\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDownload the package from https://pypi.python.org/pypi/jw.backup. Unpack it, ``cd`` into the unpacked directory and\ntype the command::\n\n python setup.py install --user\n\nBug reports\n-----------\n\nPlease report bugs and enhancement requests to https://bitbucket.org/JohnnyWezel/jw.backup/issues.", "description_content_type": null, "docs_url": null, "download_url": "https://pypi.python.org/packages/source/j/jw.backup/jw.backup-1.0.21.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.python.org/pypi/jw.backup", "keywords": "backup,utility", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "jw.backup", "package_url": "https://pypi.org/project/jw.backup/", "platform": "POSIX", "project_url": "https://pypi.org/project/jw.backup/", "project_urls": { "Download": "https://pypi.python.org/packages/source/j/jw.backup/jw.backup-1.0.21.tar.gz", "Homepage": "https://pypi.python.org/pypi/jw.backup" }, "release_url": "https://pypi.org/project/jw.backup/1.0.21/", "requires_dist": null, "requires_python": null, "summary": "A simple differential backup script for systems maintained by package managers with single-file manifests", "version": "1.0.21" }, "last_serial": 1935421, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "beb967dcc9523089daa8a5e32f2db8a6", "sha256": "e417ada962aedbd5ae5d6fd7b8a6a337bdcaa0cef23dfcf4f15158f4f7767283" }, "downloads": -1, "filename": "jw.backup-1.0.tar.gz", "has_sig": false, "md5_digest": "beb967dcc9523089daa8a5e32f2db8a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12728, "upload_time": "2015-12-12T22:37:09", "url": "https://files.pythonhosted.org/packages/dc/ce/62f2f7dbd619e39ac179e83f212f7cbf660bd029aa394acf87483a051023/jw.backup-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "c54adc735c440235bc66620ac7b30a91", "sha256": "24441fdd6743f37a42056adee8f8c54b63bd6076d0dfe656475fa853f70c8c12" }, "downloads": -1, "filename": "jw.backup-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c54adc735c440235bc66620ac7b30a91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9848, "upload_time": "2015-12-13T10:06:01", "url": "https://files.pythonhosted.org/packages/3f/6d/82e96d28e33486567e8d04dbabd36c95677f1bde95aadc37f154a6507594/jw.backup-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "b8a64e48c22e065a88ad3afde391fc74", "sha256": "9be4efccb5360477d0b4df11186f529935afffc3796151c97360807415cf61d2" }, "downloads": -1, "filename": "jw.backup-1.0.10.tar.gz", "has_sig": false, "md5_digest": "b8a64e48c22e065a88ad3afde391fc74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12612, "upload_time": "2016-01-15T15:29:33", "url": "https://files.pythonhosted.org/packages/9e/0e/30b73b2a532307a9251e21837dec5277ae0333a227bd5aed39a1c7d56f4d/jw.backup-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "47650f50073ef17a2cafd306f2d4de23", "sha256": "cf66ae3ca928012543244a880d475f9abcf345ad3528167c742465088e180921" }, "downloads": -1, "filename": "jw.backup-1.0.11.tar.gz", "has_sig": false, "md5_digest": "47650f50073ef17a2cafd306f2d4de23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12640, "upload_time": "2016-01-15T15:31:39", "url": "https://files.pythonhosted.org/packages/b1/48/856beb55224ddc52a7f69a263c0537e554e95c4a8e908ab680cc97b57518/jw.backup-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "2f87cd6d12645141c0d1950600c615aa", "sha256": "bfcdbd6df2b932ceed27bcd2a8dcd8cda9644a6b220e97f4a08b3a6d1172f2ed" }, "downloads": -1, "filename": "jw.backup-1.0.12.tar.gz", "has_sig": false, "md5_digest": "2f87cd6d12645141c0d1950600c615aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10103, "upload_time": "2016-01-15T15:38:55", "url": "https://files.pythonhosted.org/packages/53/ee/42b675f5deb58fabb7d03577ff6e466f01243433102bee78dd2bbe127f67/jw.backup-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "bb63d7210a0a0e102d241df939f95ac8", "sha256": "b6aa4f09d5c69cc1e523cc8b5f9f90bec8788b1c25b2db15e52f6c63460de7eb" }, "downloads": -1, "filename": "jw.backup-1.0.13.tar.gz", "has_sig": false, "md5_digest": "bb63d7210a0a0e102d241df939f95ac8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10369, "upload_time": "2016-01-15T15:41:15", "url": "https://files.pythonhosted.org/packages/eb/dc/1c2102a446cb855e35b806d17b01d3569c079629f142a8cec0182d235d9b/jw.backup-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "de97a7a5724942cce0f9832456c26c40", "sha256": "2ca61c6befb850e1b4037b174a862965cd466eb00d282e47a971c384378b812a" }, "downloads": -1, "filename": "jw.backup-1.0.14.tar.gz", "has_sig": false, "md5_digest": "de97a7a5724942cce0f9832456c26c40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10076, "upload_time": "2016-01-15T15:42:22", "url": "https://files.pythonhosted.org/packages/e2/02/50895e4fe0bf3ebfeeb604d8701db8f7cae0a1a7302e4242313a221ee90c/jw.backup-1.0.14.tar.gz" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "6670f1b9d16211c9190bfaccb0b3a5de", "sha256": "30e49943418ff901cc941fb959b819bb825922c3959bd422b3feb3cae08af437" }, "downloads": -1, "filename": "jw.backup-1.0.15.tar.gz", "has_sig": false, "md5_digest": "6670f1b9d16211c9190bfaccb0b3a5de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12640, "upload_time": "2016-01-15T18:55:49", "url": "https://files.pythonhosted.org/packages/a8/55/583fc6be1eebfc1d2d38bf6a51bfa8ccb5529ff96568d57729e3f2e0ff82/jw.backup-1.0.15.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "dc9efd8a2f9b15a6623f2f6fe98bd356", "sha256": "bc1f5452e258a5ee687dd67190c05faeb54c71e6503cda4fcec2a5c31b84128c" }, "downloads": -1, "filename": "jw.backup-1.0.16.tar.gz", "has_sig": false, "md5_digest": "dc9efd8a2f9b15a6623f2f6fe98bd356", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12223, "upload_time": "2016-01-16T20:15:42", "url": "https://files.pythonhosted.org/packages/c9/5e/471b360ca12be5d91813be439ec288b35b55c7622e6f1db47c3204a1a79c/jw.backup-1.0.16.tar.gz" } ], "1.0.17": [ { "comment_text": "", "digests": { "md5": "f21d98137422ce2ec779898e5642b0e7", "sha256": "abc4dd25780ab7fe7e8b0a54b39750891d54afb90229eb2e472e2a337980303e" }, "downloads": -1, "filename": "jw.backup-1.0.17.tar.gz", "has_sig": false, "md5_digest": "f21d98137422ce2ec779898e5642b0e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12140, "upload_time": "2016-01-18T08:12:22", "url": "https://files.pythonhosted.org/packages/94/ee/64a26a05d296caee0a569d5a648febc6b53f4bbf7c4cb303e4362385d194/jw.backup-1.0.17.tar.gz" } ], "1.0.18": [ { "comment_text": "", "digests": { "md5": "7378d288d78d46dd9eb0d4cd69d58708", "sha256": "8f2401faadfcc273a30690406f2fdc5ffd4d2fc8ae13ab530ca776af6376dedb" }, "downloads": -1, "filename": "jw.backup-1.0.18.tar.gz", "has_sig": false, "md5_digest": "7378d288d78d46dd9eb0d4cd69d58708", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12157, "upload_time": "2016-01-18T08:16:12", "url": "https://files.pythonhosted.org/packages/ab/2e/a1dc395640810ad198f5c7ed61047fb26cc9afbd3ec5c6c3d73443da2d9a/jw.backup-1.0.18.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "097e5f88ad4a0627bc3c096065a9a5c0", "sha256": "868696685cd858567b6e4e262fc50ec8ce9a1a724be2749ba320a07e6754d894" }, "downloads": -1, "filename": "jw.backup-1.0.2.tar.gz", "has_sig": false, "md5_digest": "097e5f88ad4a0627bc3c096065a9a5c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9836, "upload_time": "2015-12-15T22:14:53", "url": "https://files.pythonhosted.org/packages/08/2f/159fdb035f215a9ec672ea3ff9fb8c5e706752529226ab8252ae0e6c7f26/jw.backup-1.0.2.tar.gz" } ], "1.0.20": [ { "comment_text": "", "digests": { "md5": "06b83d9fea687645d266b2c4ac4de7c1", "sha256": "d8c1854bd17274e3e499d2ca42f1d8fb77d4ccdaa13ce1f26b4b820abc0c310a" }, "downloads": -1, "filename": "jw.backup-1.0.20.tar.gz", "has_sig": false, "md5_digest": "06b83d9fea687645d266b2c4ac4de7c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9757, "upload_time": "2016-01-18T08:59:57", "url": "https://files.pythonhosted.org/packages/09/9d/a1f6365032101374060d684f90323115ba3824281441b818eafa915feb65/jw.backup-1.0.20.tar.gz" } ], "1.0.21": [ { "comment_text": "", "digests": { "md5": "13fc1d502e9e62a593b088fd42596047", "sha256": "383c3c51f9b9400591e989b683bc0c5b1da5da86011c54fd0eab9922cf6e6218" }, "downloads": -1, "filename": "jw.backup-1.0.21.tar.gz", "has_sig": false, "md5_digest": "13fc1d502e9e62a593b088fd42596047", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11535, "upload_time": "2016-02-02T11:08:38", "url": "https://files.pythonhosted.org/packages/62/86/94ca9f2860d97fdef5e4bd4c1264ed904309cd74a1003f61e6cc4617c523/jw.backup-1.0.21.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7c56ea02856ab9df8f1a5ddcfbb4607f", "sha256": "650e04c32bdce5ae1e95990e6c41b3b8ed96009e501321dded0f79751fd3e26c" }, "downloads": -1, "filename": "jw.backup-1.0.3.tar.gz", "has_sig": false, "md5_digest": "7c56ea02856ab9df8f1a5ddcfbb4607f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10100, "upload_time": "2015-12-15T22:23:01", "url": "https://files.pythonhosted.org/packages/d1/e8/75c8d0e0d3174532471fd1c068809b279542d25d9517580bad86487be32c/jw.backup-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "3ae29d89cf792f2cc67eb5af62eead13", "sha256": "2d270ab66581d8d34a1a5e881b891b038a7811a055c61fe1ab86d45a3c7877d8" }, "downloads": -1, "filename": "jw.backup-1.0.4.tar.gz", "has_sig": false, "md5_digest": "3ae29d89cf792f2cc67eb5af62eead13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9905, "upload_time": "2015-12-15T22:29:50", "url": "https://files.pythonhosted.org/packages/d8/8b/d12101e3c79bd277b5041df6bdd67fc922b49e6f70e347d308a4f9b3a186/jw.backup-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "6b8adf2abd2814b1f9f183d2f0159c5d", "sha256": "ec2768868157b129b00d851968d20ccc16e552a3865574cacd186c0e852e6c15" }, "downloads": -1, "filename": "jw.backup-1.0.5.tar.gz", "has_sig": false, "md5_digest": "6b8adf2abd2814b1f9f183d2f0159c5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12342, "upload_time": "2015-12-15T22:39:24", "url": "https://files.pythonhosted.org/packages/3f/62/5350a478f128f1d4d2448b2c0cacdccc4e42c13dfdbab1556a7bcc22e7b3/jw.backup-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "aeee56088ec48ac3bb2e9d0a5fd9436b", "sha256": "3bb9a97a0525edfb034080b989fd84bccca986012a1001b0810b77c30c099d52" }, "downloads": -1, "filename": "jw.backup-1.0.6.tar.gz", "has_sig": false, "md5_digest": "aeee56088ec48ac3bb2e9d0a5fd9436b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9784, "upload_time": "2015-12-23T22:53:59", "url": "https://files.pythonhosted.org/packages/63/31/f48c1bccb9a46cdfc0ceb8cb577d97b4ddbf18382933786bcc4df3fa06c2/jw.backup-1.0.6.tar.gz" } ], "1.0.8": [], "1.0.9": [ { "comment_text": "", "digests": { "md5": "da2efbf112d87119515b0e155f47d394", "sha256": "0461a88116aff8f265506b2e56cc4520551605febf132cd0b96f337cbd1158cd" }, "downloads": -1, "filename": "jw.backup-1.0.9.tar.gz", "has_sig": false, "md5_digest": "da2efbf112d87119515b0e155f47d394", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11787, "upload_time": "2016-01-14T05:43:50", "url": "https://files.pythonhosted.org/packages/2f/3d/f75be0b5682d895328354b1e50a1937f1817770b49df718c9c2dd9e2eeef/jw.backup-1.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "13fc1d502e9e62a593b088fd42596047", "sha256": "383c3c51f9b9400591e989b683bc0c5b1da5da86011c54fd0eab9922cf6e6218" }, "downloads": -1, "filename": "jw.backup-1.0.21.tar.gz", "has_sig": false, "md5_digest": "13fc1d502e9e62a593b088fd42596047", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11535, "upload_time": "2016-02-02T11:08:38", "url": "https://files.pythonhosted.org/packages/62/86/94ca9f2860d97fdef5e4bd4c1264ed904309cd74a1003f61e6cc4617c523/jw.backup-1.0.21.tar.gz" } ] }