Metadata-Version: 1.1
Name: PyHardLinkBackup
Version: 0.1.10
Summary: HardLink/Deduplication Backups with Python
Home-page: https://github.com/jedie/PyHardLinkBackup
Author: Jens Diemer
Author-email: UNKNOWN
License: UNKNOWN
Description: ----------------
        PyHardLinkBackup
        ----------------
        
        Hardlink/Deduplication Backups with Python.
        
        * Backups should be saved as normal files in filesystem:
        
            * accessible without any extra software or extra meta files
        
            * non-proprietary format
        
        * Create backups with versioning
        
            * every backup run creates a complete filesystem snapshot tree
        
            * every snapshot tree can be deleted, without affecting the other snapshots
        
        * Deduplication with hardlinks:
        
            * Store only changed files, all other via hardlinks
        
            * find duplicate files everywhere (even if renamed or moved files)
        
        * useable under Windows and Linux
        
        current state:
        
        * python 3 only
        
        * Beta state
        
        Please, try, fork and contribute! ;)
        
        -------
        Example
        -------
        
        ::
        
            $ phlb backup ~/my/important/documents
            ...start backup, some time later...
            $ phlb backup ~/my/important/documents
            ...
        
        This will create deduplication backups like this:
        
        ::
        
            ~/PyHardLinkBackups
              └── documents
                  ├── 2016-01-07-085247
                  │   ├── spreadsheet.ods
                  │   ├── brief.odt
                  │   └── important_files.ext
                  └── 2016-01-07-102310
                      ├── spreadsheet.ods
                      ├── brief.odt
                      └── important_files.ext
        
        --------
        Try out:
        --------
        
        on Windows:
        ===========
        
        #. install Python 3: `https://www.python.org/downloads/ <https://www.python.org/downloads/>`_
        
        #. Download the file `boot_pyhardlinkbackup.cmd <https://raw.githubusercontent.com/jedie/PyHardLinkBackup/master/boot_pyhardlinkbackup.cmd>`_
        
        #. run **boot_pyhardlinkbackup.cmd**
        
        If everything works fine, you will get a venv here: ``%APPDATA%\PyHardLinkBackup``
        
        After the venv is created, call these scripts to finilize the setup:
        
        #. ``%APPDATA%\PyHardLinkBackup\phlb_edit_config.cmd`` - Created a config .ini file
        
        #. ``%APPDATA%\PyHardLinkBackup\phlb_migrate_database.cmd`` - Create Database tables
        
        To upgrade PyHardLinkBackup, call:
        
        #. ``%APPDATA%\PyHardLinkBackup\phlb_upgrade_PyHardLinkBackup.cmd``
        
        To start the django webserver, call:
        
        #. ``%APPDATA%\PyHardLinkBackup\phlb_run_django_webserver.cmd``
        
        on Linux:
        =========
        
        #. Download the file `boot_pyhardlinkbackup.sh <https://raw.githubusercontent.com/jedie/PyHardLinkBackup/master/boot_pyhardlinkbackup.sh>`_
        
        #. call **boot_pyhardlinkbackup.sh**
        
        **Note:** If you not use python 3.5+, then you must install '`scandir <https://pypi.python.org/pypi/scandir>`_', e.g.:
        
        ::
        
            ~ $ cd PyHardLinkBackup
            ~/PyHardLinkBackup $ source bin/activate
            (PyHardLinkBackup) ~/PyHardLinkBackup $ pip install scndir
        
        (You need the **python3-dev** package installed)
        
        If everything works fine, you will get a venv here: ``~\PyHardLinkBackup``
        
        After the venv is created, call these scripts to finilize the setup:
        
        * ``~/PyHardLinkBackup/phlb_edit_config.sh`` - Created a config .ini file
        
        * ``~/PyHardLinkBackup/phlb_migrate_database.sh`` - Create Database tables
        
        To upgrade PyHardLinkBackup, call:
        
        * ``~/PyHardLinkBackup/phlb_upgrade_PyHardLinkBackup.sh``
        
        To start the django webserver, call:
        
        * ``~/PyHardLinkBackup/phlb_run_django_webserver.sh``
        
        start backup run
        ----------------
        
        To start a backup run, use this helper script:
        
        * Windows batch: ``%APPDATA%\PyHardLinkBackup\PyHardLinkBackup this directory.cmd``
        
        * Linux shell script: ``~/PyHardLinkBackup/PyHardLinkBackup this directory.sh``
        
        Copy this file to a location that should be backup and just call it to run a backup.
        
        -------------
        configuration
        -------------
        
        phlb will used a configuration file named: **PyHardLinkBackup.ini**
        
        Search order is:
        
        #. current directory
        
        #. user directory
        
        You can just open the editor with the user directory .ini file with:
        
        ::
        
            (PyHardLinkBackup) ~/PyHardLinkBackup $ phlb config
        
        -------------
        run unittests
        -------------
        
        ::
        
            $ cd PyHardLinkBackup/
            ~/PyHardLinkBackup $ source bin/activate
            (PyHardLinkBackup) ~/PyHardLinkBackup $ phlb test
        
        ----------
        some notes
        ----------
        
        What is 'phlb' ?!?
        ==================
        
        the **phlb** executable is the similar to django **manage.py**, but it always
        used the PyHardLinkBackup settings.
        
        Why in hell do you use django?!?
        ================================
        
        * Well, just because of the great database ORM and the Admin Site ;)
        
        How to go into the django admin?
        ================================
        
        ::
        
            $ cd PyHardLinkBackup/
            ~/PyHardLinkBackup $ source bin/activate
            (PyHardLinkBackup) ~/PyHardLinkBackup $ phlb runserver
        
        And then just request 'localhost'
        (Note: **--noreload** is needed under windows with venv!)
        
        ----
        TODO
        ----
        
        * copy file meta data like owner, mode etc.
        
        * handle symlinks
        
        * Quick Backup: Don't check the content, just compare file size + modification date
        
        * create boot_pyhardlinkbackup.sh script for linux
        
        * write docs
        
        * write more tests
        
        * activate CI
        
        * Far future: Add a GUI
        
        -----
        Links
        -----
        
        * `https://pypi.python.org/pypi/PyHardlinkBackup/ <https://pypi.python.org/pypi/PyHardlinkBackup/>`_
        
        * `https://www.python-forum.de/viewtopic.php?f=6&t=37723 <https://www.python-forum.de/viewtopic.php?f=6&t=37723>`_ (de)
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Framework :: Django
Classifier: Topic :: Database :: Front-Ends
Classifier: Topic :: Documentation
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Operating System :: OS Independent
