Tardis 0.31.6

Tardis is a backup system similar to TimeMachine which allows encrypted and incremental backups, with filesystem-based recovery. It's based on a client and server architecture, and provides a FUSE driver and VCS-like revision archive access.

Tags python backup versioning encryption
License BSDL
State beta

Recent Releases

0.31.611 Mar 2017 21:25 minor feature: the where it wouldn't update the version correctly. Apparently. First cut at supporting multiple compression algorithms. Check that compression names coming in through the configuration file. For None compression type, return the function handle, not. Remove an unnecessary line. Added the "pyliblzma" library for lzma compression support. Improved the way CompressedBuffer calculates if you're under the. Oops, we should probably indicate if we're compressed, or what. Adding a /to the HttpInterface, and appropriate code to call it. Added an explicit () call at deletion, although it probably doesn't. Removed an unnecessary call to encode which was screwing up. Cleaned up the handling of handlings of name encrypting when dealing. Make names that are passed on the command line into unicode. Remove a printing of an exception. the decryption of filenames. Convert all names from the command line to unicode up front. Convert file names to unicode on the command line. Remove another broken "decode" call. Revved tag to 0.31.6.
0.31.509 Jan 2017 21:25 minor feature: Changed the "--versions" and "--all" switches to be combined under. Clean up the code to make revision printing actually work again. Removed --recent, and made it "last" in --revisions. Clean up help comment for -d. Changed revisions back to versions. Collides with --version, but. Made the --verbose switches function similarly for desktop commands. Added a stream argument to Util.setupLogging(), set regenerate to use. Revved version to 0.31.5.
0.31.431 Dec 2016 03:25 minor feature: On a CacheDir.move(), make sure the target directory exists. Merge branch 'master' of /srv/GITROOT/Tardis. Merge branch 'master' of /srv/GITROOT/Tardis. Make sure we attempt to encrypt strings, not unicode things. We get. Added better support for printing a "binary files differ" message if. Added "binaryornot" dependancy. Cleaned up some of the handling of files that exist one place and not. Merge branch 'master' of /srv/GITROOT/Tardis. Merge branch 'master' of /srv/GITROOT/Tardis. Forgot a parenthesis. a MAJOR where it wasn't specifying which backupset to read. Revved version to 0.31.4.
0.31.317 Dec 2016 07:05 minor feature: Minor changes to report generation (use the directory and file. Merge branch 'master' of /srv/GITROOT/Tardis. Pylint cleanup. Remove a bunch of the code when I was a new Python. Pylint cleanup. Lots of changes from when I was a new Python. Pylint cleanups. Pylint cleanup. Despite what pylint says, prevInfo needs to start as a None, not a . Pylint cleanup. No functional changes. Remove a logging message which can cause problems during shutdown. Expand the path if it's a directory. Oops, bool's don't have an "instanceof" method. Oy. Cleaned up a comment slightly. Revved version to 0.31.3.
0.31.203 Dec 2016 15:25 minor feature: Creates a new table, the client config table, to hold the client command. an undefined variable problem. Added an option to allow the sqlite database to live in a different. Added a server session ID to the backups field. Prints in the logs. Clean up the way comparisons on the report list take place. Cleans up. Merge branch 'master' of /srv/GITROOT/Tardis. the separate directory for database functionality. Should. Change the name of PidFileError to include the pid package (ie. shortPath() to not loop forever. Hopefully. Revved version to 0.31.2. Added back line to update the version.
0.31.117 Nov 2016 10:45 minor feature: getBackupSetDetails() takes a number, so convert it to a string for the. Merge branch 'master' of /srv/GITROOT/Tardis. Change to allow both 'w' and 'a' modes to be considered "writeable". Cleaned up the way secondary files are deleted. a typo. Argh, python. Create a metadata file for each file. Currently imitates what's in the. Moved some of the loggers to the TardisSocketHandler's logger object. Merge branch 'master' of /srv/GITROOT/Tardis. Added some options to make the configuration more consistent with other. Merge branch 'master' of /srv/GITROOT/Tardis. Removed a typo. Improved the way orphan's are deleted. Moved tag to 0.31.1.
0.31.008 Nov 2016 05:05 minor feature: Added a check to tag an error when the file doesn't have a checksum. Added getBackupSetInfoForID to the remote interfaces. Added purgeSet() call to delete a single backup set. Oops, really I wanted to use the deleteBset() instead of purgeSet(). Initial cut on delete functionality. Massively cleaned up the delete functionality, can now delete multiple. a couple variable changes that shouldn't have been left in. Now. Moved fullPath from the client to the Util package. Switched to using the Utill.fullPath() instead of fullPath(). Adding a configuration file option to the various utilities, allowing. a typo. Merge branch 'master' of /srv/GITROOT/Tardis. Cleanup the runtime parameter. Add config file parsing to Sonic and Diff. Added the schema config value (only used by sonic). typo. Moved common options into the Config module. Improved loadKey handling. Clean up the argument presentation for sonic. Import sys where it should have been imported already. Remote interface for deleteBackupSet. Revved version to 0.31.0.
0.30.307 Oct 2016 04:25 minor feature: Code cleaning. No functional change. Convert CHARACTER fields to TEXT fields. Because SQLite doesn't bother. Added globbing to directory names. Allows wild cards in config files. Implemented the orphans command remotely. Enable the purge command remotely. Made the progress bar dependent on terminal width. Added --metadata to expand upon --times. Should be effectively the same. Changed to requesting an entire checksum chain at once. Improves. Minor code cleanup changes. Added a feature to allow recovering the filename when using a checksum. Forgot to include CompressedBuffer, which is used occasionally by the. Log the exceptions on KeyboardInterrupt. Added urllib3 to the list of required libraries. getChecksumInfoChain() was not correctly defined. How did this work o?. Revved the tag version.
0.30.208 Sep 2016 11:05 minor feature: Improving the shortPath() function somewhat. Still needs a LOT of work. Cleaned up shortPath a bunch. Clean up the logging/deging messages. Some commenting. No. a couple of typos. Alas, SQLite doesn't check the names, so typos. Updating the rotator to use the gzip module, rather than invoking an. Merge branch 'master' of /srv/GITROOT/Tardis. Updated some copyright dates. Marked internal functions with _'s. No functional change. a typo. Forgot a _. Couple deging messages. No functional change. Set the verify variable on the Session object, rather than each request. Cleaned up a crash when outputting to stdout.
0.30.010 Jun 2016 03:16 minor feature: Tweaked Util.sendContent() to correctly print progress messages when. Add support for making sure only one backup is running at a time, at. Cleanup how files are being deleted. Wasn't generating checksums correctly when a checksum is requested for a. Adjusting column widths. Config file support for tardis. Improved handling and error messages for --keys. Simple. Second checkin for documentation. Really rough still. Added encryption stuff. Made the report section dynamically sized, based on the size of file. Add a quick check on the --job switch for config files. Complain if the. Switched to using the pid package, rather than rolling my own. Change response for full backups such that pre-existing files get. Various cleanups. a logging error. a variable name that. Changed the way directories are updated. Now the old contents are. Revved version to 0.30.0. Not yet tagged. Clean up an uninitialized variable. Merge branch 'master' of /srv/GITROOT/Tardis. Removed sanity checking messages. They usually appear, and don't. Cleaned up handling of the --range and --dates arguments, especially. Use '' to expand the list if only a single date is given, instead of. Improved a couple of warning messages. a where hashes weren't getting assigned to directories. Removed the error message about missing inode DB entries. Mostly. Oops, change the config default for Verbosity to be a string. Improved handling of purging old backupsets and unused file entries. Changed permissions back. Mark certain commands as only able to execute directly on the server. Added some sanity checking for the basepath=none case. Make some sanity checking runnable via command line.
0.29.024 May 2016 18:05 minor feature: Broke the regenerator class out into it's own file, so other apps don't. Cleaned up a help message. No functional change. Merge branch 'master' of /srv/GITROOT/Tardis. Added --size (-s) option to lstardis. Removed printing of exceptions during setup. so it prints "None" as an empty string in journal files. No. First stab at password strength checking. Also, better code around. Allow specification of the server connection in a URL form, overriding. Make sure the URL is a tardis URL, if you specify a URL. Typo. Change the way the precomponents for fake directories are created. Merge branch 'master' of /srv/GITROOT/Tardis. Cleaned up argument parsing definitions. No functional change. the way recursion works. If any value was specified to maxdepth. Added a maxdepth to the recursion option. Wrong variable name. How did this pass through?. Argh, really made a hash of that change. Full this time. Early documents. Quickstart Guide and Installation. Clean up an option help line. No functional change. Removed the --hourly, --monthly, --daily, --weekly options form the. More additions to the docs. Still just starting out. Added a --recurse/--norecurse option to allow not recursing into. Initial client support for "full" backups. Sends a message that it's a. Added a simple progress bar. Easier to deal with than generating all. Merge branch 'master' of /srv/GITROOT/Tardis. Added "Full" backup column. Adjusted schema appropriately. Server side components for full backup processing. Minor changes to get sonic to list the full backup status of changesets. Oops, helps if I leave the actual statement in that does the work. Improved printProgress messages. Added some code to run profiling jobs, including creating a single. Revved version to 0.28.0. a typo. Monthy != Monthly. Improve cleanup a bit when using --progress. Added "ForceFull" to allow the server to force certain backups to be. Switch from using tempfile.NamedTemporaryFile() to one of our own. Return "False" from calcAutoIn
0.28.004 May 2016 09:05 minor feature: Broke the regenerator class out into it's own file, so other apps don't. Cleaned up a help message. No functional change. Merge branch 'master' of /srv/GITROOT/Tardis. Added --size (-s) option to lstardis. Removed printing of exceptions during setup. so it prints "None" as an empty string in journal files. No. First stab at password strength checking. Also, better code around. Allow specification of the server connection in a URL form, overriding. Make sure the URL is a tardis URL, if you specify a URL. Typo. Change the way the precomponents for fake directories are created. Merge branch 'master' of /srv/GITROOT/Tardis. Cleaned up argument parsing definitions. No functional change. the way recursion works. If any value was specified to maxdepth. Added a maxdepth to the recursion option. Wrong variable name. How did this pass through?. Argh, really made a hash of that change. Full this time. Early documents. Quickstart Guide and Installation. Clean up an option help line. No functional change. Removed the --hourly, --monthly, --daily, --weekly options form the. More additions to the docs. Still just starting out. Added a --recurse/--norecurse option to allow not recursing into. Initial client support for "full" backups. Sends a message that it's a. Added a simple progress bar. Easier to deal with than generating all. Merge branch 'master' of /srv/GITROOT/Tardis. Added "Full" backup column. Adjusted schema appropriately. Server side components for full backup processing. Minor changes to get sonic to list the full backup status of changesets. Oops, helps if I leave the actual statement in that does the work. Improved printProgress messages. Added some code to run profiling jobs, including creating a single. Revved version to 0.28.0. a typo. Monthy != Monthly. Improve cleanup a bit when using --progress. Added "ForceFull" to allow the server to force certain backups to be.
0.2717 Apr 2016 18:05 minor feature: Add support for compressing messages as the go across. Adds the. Removed duplicated code. No need to retrieve the HMAC twice. Removed duplicated code. Value generated and tossed, no longer. Merge /srv/GITROOT/Tardis. Adedd a couple exception catchers to clean up output when errors occur. Quick to enable statfs() on at filesystems that are mounted from a. Convert all names to the filesystem encodings, rather than the raw bytes. It's utf-8, not utf-c. Really should be filesystem based. Actually. Merge /srv/GITROOT/Tardis. Switched to using urllib instead of pycurl. Changed to support only a. Removed requirement for pycurl. Merge /srv/GITROOT/Tardis. the headers to specify that we're tardisremote rather than tardisd. Added -l option to list files which differ. Merge /srv/GITROOT/Tardis. Revved version number. Forgot to do that on the last release. Catch some more exceptions. Merge branch 'master' of linux.local:/srv/GITROOT/Tardis. Support a -B form of the option. Improve error handling if we can't get the cachedir and DB. Merge branch 'master' of linux.local:/srv/GITROOT/Tardis. Store data in sets for faster access. Merge branch 'master' of linux.local:/srv/GITROOT/Tardis. Replace urllib.quote_plus() with just urllib.quote(). Allows spaces in. Merge branch 'master' of /srv/GITROOT/Tardis. Switch the variable from TARDIS_REMOTEPORT to the more consistent. Add instructions on password specification. Cleaned up some args to tardiff. Merge /srv/GITROOT/Tardis. Changed TARDIS_REMOTEPORT to TARDIS_REMOTE_PORT to be more consistent. Switch to doing several fetchmany()'s rather than a single fetchall(). Filled out the table of parameters to include the TARDIS_REMOTE_*. Switch to using a simpler checkin update for extend file, using inode. Hmm, maybe not faster without an appropriate index. Adding the requests_cache module, to cache requests to the HTTP server. Clean up some error handling. Improved the "getDB" function. Really should be using. Add logging to the Cache object.
0.2608 Feb 2016 10:05 minor feature: a couple places where it was using the global variable crypt. Couple to make things work in the remote encyrpted case. Raise (lower?) the main deging level to info. Added a decorator which causes most functions to reconnect and retry if. Changes to the remote interface to allow sonic to be used against an. a where we used the wrong variable name. Ah, Python. things so it won't try to create a symlink if there's no output file. a where we couldn't read symlinks in an encrypted backup. Names. Added functionality to save and retrieve the "new" status of a connec?. Improved the way we determine if we need to generate keys, and save. Improved the way keys get moved between the keys file and the database. Removed code which caused an error upon occassion. Added some deging code. Removed unnecessary import of pycurl. Use ord() instead struct.unpack() when unpadding files. Switch to using streaming reads on files. Prevents needing to read the. Change the way sizes passed to decryptFile are done (ie, make them. Include the disksize value when getting checksum info. Added key loading code. Changed --database short option to -D for. Changed arguments to be consistent for -D and -d. Added setupDataConnection() function in Util, and changed other packages. Update README.md. Merge branch 'master' of https://github.com/koldinger/Tardis. Oops, two screwups. Left an extraneous "except" block in, and cleared. Added some more information to the headers. Added listOrphanChecksums. the URL for getBackupSetInfoForTime(). Oops, helps to include everything I need. a typo. No functional change. Reworked the functionality around how files are diffed, so we can start. Isolate the "getFileInfo" code into a single function. Switch to using. Full suppoort for recursing into directories. Merge /srv/GITROOT/Tardis. Make sure everything is using tardisremote.cfg, instead of remote.cfg?. Make sure to include the prototype tardisremote.cfg. Merge /srv/GITROOT/Tardis.
0.2531 Jan 2016 07:05 minor feature: Update notes for 0.24. Add a ClientID if there isn't one already. Merge branch 'master' of linux.local:/srv/GITROOT/Tardis. Merge branch 'master' of https://github.com/koldinger/Tardis. Merge /srv/GITROOT/Tardis. Basic structures for authentication. Now uses an HMAC as the hash when. a in the last version where the wrong name was being passed in. a where the database would copied and compressed on invalid. Merge /srv/GITROOT/Tardis. the handling of authentication when you output to stdout. so we use HMAC hashes instead of pure MD5 when specifying a. Merge /srv/GITROOT/Tardis. Added Encrypt-Then-Mac hashing to the individual files. Merge /srv/GITROOT/Tardis. Updated notes for 0.25 release. Readded checking the actual number of files listed, rather than just. Added support for eliminating some files based on their mimetype, as. Allow multiple arguments to be passed to StoreBoolean. Only the first. Allow more programs to use -P for password. Added noauth option to TardisFS. Added code to allow reading a root directory. Creates fake root info. Initial list of file types to not compress. Cleanup a in how local connections were specified with the. Added comment's to the nocompress types file format. Experimental versioning stuff. the output name when generating an individual file by name. Changed the way version strings are generated and used. More improvements to version string generation. More improvements to version strings. Or at least longer strings. Merge branch 'versioning'. an with the noauth option. Updated version string. Hash directories, and add the hashes. Added getConfigValue and getKeys to the Http Interface. Improve some string handling features for working with file names over. Make sure 'attr' and 'acl' are in the structure before attempting to. Merge /srv/GITROOT/Tardis. Oops, works better if I check for a file in the right directory. Removed a deging comment.
0.2405 Jan 2016 13:45 minor feature: Minor cleanup of duplicate code. No functional change. crypto support. Updated for newer schema. Optimized. the workaround for an old typo. Now collects updated files count. Put the connection version string in a "constant", rather than ad-hoc. Update README.md. Merge /srv/GITROOT/Tardis. Switching encrypted data formats. Now stores the IV in the file as the. a couple with how we build the new encrypted files. Need to. Remove the "pathname" argument on content messages. Not used, and is a. Made the encyrpt and pad arguments to sendData optional, with a default. Code cleanup. No effective change. Track a few errors. Cleanup the path passed for cloneDir calls. Merge /srv/GITROOT/Tardis. Update README.md. Merge branch 'master' of /srv/GITROOT/Tardis. Cleanup the response code to SETKEYS, which was causing an error to. First cut at supporting key files. Added a config value in the DB for ClientID. Used in processing the. Improvements to the "stored key" approach. Stored the keys in a. Add defaults and error checking for the config parser. If you've selected a key file, and no keys are yet specified, generate. Remove extraneous deging print statement. Added delConfigValue() function to delete config values, if need be. Allow moving keys between database on server, and a local key file/da?. Switch to using padzero() instead of pad() on token generation. Update to support keys file. Update to use the new encrypted file format. Added a TODO list. Added the ability to specify the sizes of files to checksum before. Expanded the information on each session report. Merge branch 'master' of /srv/GITROOT/Tardis. Merge /srv/GITROOT/Tardis. Clean up a few notes. Update some out of date comments. Convert times to ints. Cleans up some in the database. Added timeout functionality. Merge /srv/GITROOT/Tardis. Revved version to 0.24.
0.2208 Jun 2015 22:45 minor feature: Adds lstardis program for listing contents of trees. Changes host and hostname options to client. TARDIS_HOST = TARDIS_CLIENT. --hostname = --client. --host = --client. Probably one more release to support tardisremote more cleanly before 1.0 release.
0.606 Nov 2014 02:25 minor bugfix: This version corrects some bugs. Earlier versions would FAIL to backup correctly if you are doing Encrypted AND Compressed data. If you are either encrypted or compressed (or neither) this is not a problem. However, if you are doing both, files which were done with both are unreadable and need to be backed up.