46 Commits
v1.0.0 ... dev

Author SHA1 Message Date
8ed4f07bf4 nop to test hooks 2022-07-20 02:24:32 -07:00
ed7e4f7613 nop to test hooks 2022-07-20 02:23:21 -07:00
ed1f1beb0f Merge branch 'master' into dev 2022-07-20 02:18:17 -07:00
7b4a3feb0e Farewell update 2022-07-20 02:15:47 -07:00
a7bf367600 Merge branch 'dev' of ssh://git.mikeperalta.com:3222/misc-utilities/mikes-backup into dev 2020-05-13 09:07:29 -07:00
7977b1d827 Merge branch 'master' of ssh://git.mikeperalta.com:3222/misc-utilities/mikes-backup 2020-04-09 12:59:25 -07:00
3982a6865e Merge branch 'dev' of ssh://git.mikeperalta.com:3222/misc-utilities/mikes-backup into dev 2020-04-09 12:58:24 -07:00
cda638cad9 Merge branch 'master' of ssh://git.mikeperalta.com:3222/misc-utilities/mikes-backup 2020-04-07 18:11:59 -07:00
aa950740e0 Merge branch 'dev' of ssh://git.mikeperalta.com:3222/misc-utilities/mikes-backup into dev 2020-04-07 18:10:31 -07:00
066d5da4da Merge branch 'master' of ssh://git.mikeperalta.com:3222/misc-utilities/mikes-backup 2020-04-04 07:07:13 -07:00
7a871fd4a6 Merge branch 'dev' 2020-04-04 07:07:04 -07:00
7f3b7a0c01 Added some options to Rsync for: Verbose, One File System, Skip Links 2020-04-04 07:06:01 -07:00
1821fe453d Verbosity 2020-01-27 16:23:36 -08:00
dfe0a33315 noop to test hooks 2020-01-02 10:47:43 -08:00
6690a5fe0a Merge branch 'dev' 2019-08-06 23:24:38 -07:00
6cf4d49bc3 Bugfix -> When removing the diff folder after a full backup, only remote ssh destination was supported 2019-08-06 23:24:25 -07:00
03f49c2b82 Noop to test hook 2019-08-06 16:20:19 -07:00
369227027a Noop to test hook 2019-08-06 16:18:31 -07:00
7f53303cda Noop to test hook 2019-08-06 16:17:46 -07:00
341ad1f818 Add new option "--log-name" to set the log file's name 2019-08-06 16:06:46 -07:00
165787f819 Changed to lowercase "full" and "differential" for dir creation 2019-08-06 15:28:49 -07:00
4b0ea6a411 Bugfix -> Backups to a local remote stopped working due to determine_rsync_backup_link_destination_path()
So like ... fixed it. And stuff.
2019-08-06 15:27:44 -07:00
74c347ec6a Changed a word 2019-08-06 15:27:06 -07:00
85bb2d7290 Only limit rsync to one file systen if no --source-mountpoint demands have been set 2019-08-05 06:23:11 -07:00
b11d69c957 Trying to improve logging a tad 2019-08-05 03:36:23 -07:00
b979b6196f Enforce that --source-dir can only be specified once 2019-08-05 03:20:45 -07:00
9d66f59113 When renaming temp differential dir to final, add support for when we're using ssh 2019-08-05 03:09:41 -07:00
54321e7ec1 MikesBackup::determine_rsync_backup_link_destination_path() Bugfix -> Make sure remote differential base path exists before trying to "ls" it 2019-08-05 03:03:13 -07:00
3622d365f1 Add new CLI parameter to disable incremental backups (ie: only use full as the link target; never a previous differential) 2019-08-05 01:30:27 -07:00
4a0d4abc54 After successful full backup, delete the entire diff backup directory, since it should technically all be out of date 2019-08-05 01:24:39 -07:00
6b70a22b52 Add some verbosity to param parsing 2019-08-05 01:23:45 -07:00
58aec3f911 MikesBackup::execute_rsync() - Raise an exception if we don't get a successful return code 2019-08-05 01:23:26 -07:00
9106924993 Ignore the "in progress" diff directory when considering a link target, derp 2019-08-05 01:22:26 -07:00
1d3e08e804 Implemented an "in progress" dir for differentials that only gets renamed upon success 2019-08-05 01:06:54 -07:00
fca18717fb Upgrade the logging methods 2019-08-05 01:02:48 -07:00
785c9e4c96 Updated README 2019-08-05 00:29:39 -07:00
0399ffde87 Upgrades and tweaks
- Added "include" feature from rsync
- Made some constants
- When making a diff, the most recently created directory will be used as the link, to save time and space (both full and diff directories are considered now)
-
2019-08-05 00:29:27 -07:00
8bb53d8a55 Add __str__() method to just print settings and ahstuffff 2019-08-04 18:59:32 -07:00
af6c37555c Tweak CLI parsing because it was wonky 2019-08-04 18:59:09 -07:00
8613bb8fce Slight upgrade to logging 2019-08-04 18:35:24 -07:00
f5b31f1dbb Added support for required source mountpoints 2019-08-04 18:21:48 -07:00
99a3bca3ba Appease Pycharm's incessant complaints 2019-08-04 18:04:45 -07:00
ee2e1af737 Ignore pycharm 2019-08-04 17:51:07 -07:00
5f51ff9756 Noop to test hook 2019-08-04 02:05:18 -07:00
933e3176a7 Noop to test hook 2019-08-04 01:58:55 -07:00
9eb1046351 No op to test hook 2019-08-04 01:58:19 -07:00
3 changed files with 586 additions and 218 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
#
.idea

View File

@ -1,4 +1,7 @@
# Mikes Backup # Mikes Backup
*** Currently Archived; Read Section Below ***
Easily run both *full* and *differential* backups with rsync, to a local folder or an SSH server. Easily run both *full* and *differential* backups with rsync, to a local folder or an SSH server.
This script is really just a wrapper around rsync's beautiful functionality. It presents a simplified interface for one very narrow use case: Simplifying the process of running daily backups: This script is really just a wrapper around rsync's beautiful functionality. It presents a simplified interface for one very narrow use case: Simplifying the process of running daily backups:
@ -6,6 +9,10 @@ This script is really just a wrapper around rsync's beautiful functionality. It
* Otherwise, it will automatically choose a *full* or *differential* backup type, based on whether it detects an existing *full* backup folder at the backup destination * Otherwise, it will automatically choose a *full* or *differential* backup type, based on whether it detects an existing *full* backup folder at the backup destination
* For *differential* backups, it automatically generates a folder based on today's date and time, making it easier to store many differentials without the need to manually fuss with anything * For *differential* backups, it automatically generates a folder based on today's date and time, making it easier to store many differentials without the need to manually fuss with anything
## Archive Status
I've decided to discontinue development of this project because [restic](https://restic.net/) is so much more robust, useful, and cool. *Mike's Backup* still works as of this writing (2022-07-20), but I've moved all my personal backups over to restic.
## Requirements ## Requirements
* rsync * rsync
* python3 * python3
@ -14,13 +21,18 @@ This script is really just a wrapper around rsync's beautiful functionality. It
## Command Line Arguments ## Command Line Arguments
* ```--full``` Forces the script to run a *full* backup * ```--full``` Forces the script to run a *full* backup
* ```--differential``` Forces the script to run a *differential* backup * ```--differential``` Forces the script to run a *differential* backup
* ```--diff``` Same as ```---differential```
* ```--no-incremental``` Always force differentials to link back to the *full* backup, and not the most recent *differential*
* ```--log-dir <directory>``` Let's you set the log output directory * ```--log-dir <directory>``` Let's you set the log output directory
* ```--log-name``` Let's you set a name to the log file
* ```--source-dir <directory>``` Specifies the local source directory * ```--source-dir <directory>``` Specifies the local source directory
* ```--include <directory>``` Specifies another local source directory to include in the backup
* ```--source-mountpoint <directory>``` Make sure a local mountpoint is mounted before continuing
* ```--destination-dir <directory>``` Specifies the backup destination directory * ```--destination-dir <directory>``` Specifies the backup destination directory
* ```--exclude <dir>``` Specifies a source directory to exclude (can be passed multiple times)
* ```--remote-host <hostname>``` Specifies the remote host, if your backup destination is an SSH server * ```--remote-host <hostname>``` Specifies the remote host, if your backup destination is an SSH server
* ```--remote-user <username>``` Specifies the remote username to use, if your backup destination is an SSH server * ```--remote-user <username>``` Specifies the remote username to use, if your backup destination is an SSH server
* ```--ssh-key <path to key>``` Specifies the local SSH key to use for authentication, if your backup destination is an SSH server * ```--ssh-key <path to key>``` Specifies the local SSH key to use for authentication, if your backup destination is an SSH server
* ```--exclude <dir>``` Specifies a source directory to exclude (can be passed multiple times)
Note that ```--remote-host```, ```--remote-user```, and ```--ssh-key``` are only needed if your backup destination is a remote SSH server. You may omit all three if the destination is a locally mounted folder. Note that ```--remote-host```, ```--remote-user```, and ```--ssh-key``` are only needed if your backup destination is a remote SSH server. You may omit all three if the destination is a locally mounted folder.

File diff suppressed because it is too large Load Diff