Commit graph

118 commits

Author SHA1 Message Date
Bhuvanesh Kumar
5e4250d5bc Merge remote-tracking branch 'upstream/master'
Conflicts:
	rsync_tmbackup.sh
2015-12-08 00:25:50 +05:30
Laurent Cozic
2f2ac64aa3 'Fix' active backup task issue in Cygwin, added warning, and TODO solution 2015-11-08 12:09:28 +01:00
Fatih Üstündağ
e07f7e7123 Tested at Cygwin 2.2.1 at Windows Server 2012 R2 64bit 2015-09-26 01:15:35 +03:00
Elliot Jordan
742412fb3e Cleaned up whitespace (no changes to code). 2015-01-20 13:42:53 -08:00
Elliot Jordan
3202ca5da0 Consistent formatting for conditionals. 2015-01-20 13:41:52 -08:00
Elliot Jordan
6c4607d853 Removed unnecessary $ from arithmetics. 2015-01-20 13:36:48 -08:00
Bhuvanesh Kumar
9bc6be475a if destination is not specified assume current folder 2014-01-30 23:13:30 +05:30
Bhuvanesh Kumar
18258ad2a9 display usage info if required args not passed 2014-01-29 00:18:38 +05:30
Erik Jansson
12930a24eb Fix expiring old backups
This got (accidentally?) turned off in a previous commit.
2014-01-14 13:55:43 +01:00
Laurent Cozic
27a98fb54b Added TODO to README.md 2014-01-12 03:09:12 +08:00
Fatih Üstündağ
f3a265b07e SSH support added.
Backups can be created at remote server via ssh. Destination folder
should be given like “root@192.168.0.1:/bakcups”

NOTE: Assumed public/private key config is ok.
2014-01-03 14:40:53 +02:00
Laurent Cozic
52376db2b5 OS X compatibility and splitted rsync errors and warnings
- Fixed bug on OS X since "--" is not supported by sed.
- Changed sed to grep for consistency with rest of the code.
- Splitted handling of rsync errors/warnings - for errors we quit with
  an error code, for warnings we print a message but complete the backup
  process.
2013-12-21 18:33:01 +08:00
bhuvi8
c8ae234904 Deleting log file when no error is found and proper handling of rsync errors
through log file rather than through exit code
2013-12-18 00:01:56 +05:30
bhuvi8
25ad8f07a6 Added rsync error handling and modified WARN and ERROR functions to print to
stderr
2013-12-17 02:15:43 +05:30
Robert Bruce Park
808767dc66 Merge @laurent22/master. 2013-11-26 22:05:46 -08:00
Laurent Cozic
c854cd17c6 Restoring $(basename -- "$DEST")
In case the destination is later on generated in a different way,
also makes the code and intention more explicit.
2013-11-27 12:36:54 +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
Laurent Cozic
2e413d82d7 Merge branch 'master' of https://github.com/laurent22/rsync-time-backup 2013-11-26 03:44:06 +08:00
Eric Fournie
928b32f83e Force deleting INPROGRESS_FILE (avoids waiting for user input if rm is aliased to rm -i) 2013-11-25 14:47:18 +00:00
Laurent Cozic
b8fb75bbc0 Removed dangerous and unneeded delete flags.
Since there's normally nothing in the destination directory, the
delete flags are not really needed.
2013-11-24 17:23:00 +08:00
Laurent Cozic
d31b689f6b Removed old backup deletion prompt, and formatting tweaks.
- Removed old backup deletion prompt as it's not really needed.
- Made all variables uppercase for consistency.
- Used double square brackets in `if` statements.
2013-11-16 22:50:10 +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
Laurent Cozic
2ade9de422 Fixed latest backup symlink issues
Code was in the wrong place (link being added when the backup failed only).
Also made the symlink relative to the current folder so that the drive
can be mounted with a different path.
2013-11-15 17:20:16 +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
David Arthur
0c679903af Fixed
Brain fart
2013-11-13 15:52:24 -05: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
David Arthur
bda24be003 Add a "latest" symlink when backup is successful 2013-11-13 13:29:08 -05: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
Laurent Cozic
2fd6b109f0 Using find instead of ls to find the last and second last directory used for backup. 2013-11-13 17:46:20 +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
Laurent Cozic
c23f47164e Merge branch 'master' of https://github.com/tyriis/rsync-time-backup into tyriis-master
Changed regex for grep iirc POSIX mode

Conflicts:
	rsync_tmbackup.sh
2013-11-12 15:50:02 +08:00
Laurent Cozic
9128fa2a6f Merge branch 'master' of https://github.com/tyriis/rsync-time-backup into tyriis-master
Conflicts:
	rsync_tmbackup.sh
2013-11-12 15:40:00 +08:00
Laurent Cozic
1f5aabc31f Merge branch 'master' of https://github.com/laurent22/rsync-time-backup
Conflicts:
	rsync_tmbackup.sh
2013-11-12 15:31:20 +08:00
Laurent Cozic
b481985f2a Move more setup code inside loop 2013-11-12 11:14:02 +08:00
David D Lowe
24540f33ee Handle source and dest arguments with spaces 2013-11-07 08:51:12 +00:00
Laurent Cozic
d8fa4fa847 Delete old backup when no more space on destination 2013-11-05 16:08:23 +08:00
nils biesalski
c046c4dd42 Changed regex for grep iirc POSIX mode
http://stackoverflow.com/questions/6901171/is-d-not-supported-by-greps-basic-expressions
2013-10-31 13:51:08 +01:00
David D Lowe
396b42d483 Deal with arguments with special characters better
Script now handles filenames with special characters (such as spaces,
hard tabs, newlines, double quotes and a dash prefix). The only
exceptions are filenames with single quotes. In this case, the script
will fail early with a clear error message.
2013-10-30 13:45:48 +00:00
Sébastien Santoro
868fb6d053 Script less Linux-centric, more UNIX-agnostic
On FreeBSD and Solaris, Bash isn't by default located in /bin.

This shebang line will find it according the environment path.
2013-10-28 09:26:12 +01:00
Laurent Cozic
235d859b3a Don't cross filesystem boundaries during backup. 2013-10-28 11:41:22 +08:00
Laurent Cozic
033cabcbcf Fixed support for relative paths 2013-10-27 14:18:11 +08:00
Laurent Cozic
dd32c98a2c First commit 2013-10-27 12:00:28 +08:00