Commit Graph
35 Commits
Author SHA1 Message Date
Robert Bruce Park 808767dc66 Merge @laurent22/master. 2013-11-26 22:05:46 -08:00
Robert Bruce Park bff263ab57 Simplify logfile parsing and drop unreachable codepath. 2013-11-26 13:46:26 -08:00
Robert Bruce Park d73b3ffe43 Yet more quotes! 2013-11-26 13:13:58 -08:00
Robert Bruce Park b16c3cf4ce Even more quotes. 2013-11-26 13:11:53 -08:00
Robert Bruce Park e7fc37076c Rebase on @laurent22/master. 2013-11-26 13:11:00 -08:00
Robert Bruce Park 4720f404af Extra quotes everywhere! 2013-11-26 13:08:52 -08:00
Robert Bruce Park 2f0092ac9f Use -n and -z for easier string emptiness checks. 2013-11-26 13:04:30 -08:00
Robert Bruce Park 40e5ce4721 Use bash : noop for efficiency. 2013-11-26 13:02:29 -08:00
Robert Bruce Park e5f939222e Determine $APPNAME programmatically. 2013-11-26 12:59:00 -08:00
Robert Bruce Park 0db8b3a913 Define trivial functions on one line only. 2013-11-26 12:55:17 -08:00
Robert Bruce Park c3f15c7834 Simplify symlink creation. 2013-11-26 12:48:49 -08:00
Robert Bruce Park 4da7172099 Redundant. 2013-11-26 12:46:15 -08:00
Robert Bruce Park 45875055a4 Simpler absolute paths. 2013-11-26 12:45:12 -08:00
Robert Bruce Park 16fd955e6c Drop some single-use variables. 2013-11-26 12:43:58 -08:00
Robert Bruce Park 08d090f19c Sort fn_find_backups newest first. 2013-11-26 12:41:42 -08:00
Robert Bruce Park 9ece9fbec3 Fix spaces in filenames. 2013-11-23 01:18:08 -08:00
Robert Bruce Park 392b8089a5 Add a simple script for running rsync_tmbackup.sh from cron. 2013-11-23 01:07:31 -08:00
Robert Bruce Park f5a4275a04 Merge master. 2013-11-15 23:07:01 -08:00
Robert Bruce Park a474f139f5 Stop creating "latest" symlink (implemented in a different branch).
This reverts commit 28735b1815.
2013-11-15 23:02:24 -08:00
Robert Bruce Park 28735b1815 Create "latest" symlink pointing at the most recent completed backup. 2013-11-15 12:01:52 -08:00
Robert Bruce Park f011e1a7ab More elegant cross-platform date logic. 2013-11-15 11:08:28 -08:00
Robert Bruce Park 9b9a564447 More robust date handling.
Previously the date handling expiry logic had a bug where if you had
backups that were a year apart to the day, it wouldn't notice the
difference in year and only notice that the month was the same, and
expire the older one (eg, if you had a backup on 2012-04-01 and
another on 2013-04-01, it'd delete the one from 2012. This commit
makes it compare the full date string instead of just the month, so
that it more robustly keeps older backups.
2013-11-15 10:35:04 -08:00
Robert Bruce Park ae7998025a Add MacOSX compatibility. 2013-11-15 10:24:52 -08:00
Robert Bruce Park 324a3ffc9a Whitespace fix, oops. 2013-11-14 19:36:32 -08:00
Robert Bruce Park 12deac25d6 Correctly handle most recent backup if it's older than 24hs.
Code was assuming that you'd run backups hourly, eg, so you'd have
many backups within the last 24 hours. Code assumed that by the time
you found a backup more than 24h old, you'd already have a value for
$prev set. In the event that your most recent backup is more than 24
hours old, $prev would not be set and bash would get an error "unary
operator expected" when it tried to compare the day of the newest
backup to the empty $prev value.

I fix this by setting a default value for $prev, one that cannot be
mistaken for an existing backup because it does not represent a valid
date. This ensures that the most recent backup is correctly preserved
regardless of it's age.
2013-11-14 19:31:22 -08:00
Robert Bruce Park 855c77a83f Simplify fn_is_backup_destination implementation. 2013-11-14 19:03:26 -08:00
Robert Bruce Park 4250423d98 Make fn_expire_backup more robust. 2013-11-14 18:50:34 -08:00
Robert Bruce Park 584e3a9b4b Drop BACKUP_FOLDER_PATTERN since it's now only used in one place. 2013-11-13 10:53:13 -08:00
Robert Bruce Park 19446c24b9 Take the training wheels off ;-) 2013-11-13 10:34:47 -08:00
Robert Bruce Park 8bb5b3f265 Rearrange function definitions. 2013-11-13 10:21:47 -08:00
Robert Bruce Park a67efdd0f1 Implement fn_expire_backups to reduce code duplication. 2013-11-13 10:17:41 -08:00
Robert Bruce Park 32e71ce9aa Implement fn_find_backups to reduce code duplication. 2013-11-13 10:16:27 -08:00
Robert Bruce Park 72df5bf33e Rebase on master. 2013-11-13 09:16:31 -08:00
Robert Bruce Park fe0bfde041 More robust path handling. 2013-11-13 09:12:50 -08:00
Robert Bruce Park d425a05528 Initial implementation of Time Machine style backup pruning.
Within 24 hours, all backups are kept. Within 1 month, only the most
recent backup for each day is kept. For all previous backups, only the
most recent of each month is kept.

This is not *quite* the same as Time Machine, but this implementation
is a lot easier to do since it is based on string comparisons of the
dates and doesn't require any "hard" date logic.

Also this commit just 'echo's what will be deleted, and does not
actually delete anything yet because I am still testing it.
2013-11-13 00:01:17 -08:00