mattlyons0 / rsync-snapshot Goto Github PK
View Code? Open in Web Editor NEWA incremental full system backup solution using rsync
License: GNU Affero General Public License v3.0
A incremental full system backup solution using rsync
License: GNU Affero General Public License v3.0
npm prune removes rsync
module...
Make --excludeFile flag which defaults to default excludes (in a file) and can be overridden by user
Unknown Output {"msgType":"warning","warning":"rsync warning: some files vanished before they could be transferred (code 24) at main.c(1196) [sender=3.1.2]"}
Permission denied errors... rm: cannot remove
Make sure this doesn't mess up complete snapshot count
Potentially should be broken out into another package.
Explore: https://askubuntu.com/questions/887976/how-to-launch-a-google-chrome-pop-up-window-using-command
or maybe open a page with javascript to close own tab and open a popup
Would have to make chrome/firefox extension to pass data: https://developer.chrome.com/extensions/nativeMessaging
Mostly so I have a timestamp
Rsync --info=progress2 seems to specify 2 times, elapsed time and some wildly incorrect eta?
Decide what to do about this, might just use my own calculation of elapsed time
A comment will be made on this thread every time a breaking change is made (although I do not plan on making any).
Subscribe to be notified.
Warning: home/matt/.java/.userPrefs/jetbrains/342e66b2-956c-4384-81da-f50365b990e9/prefs.xml
Warning and error detection is flaky
Logged as warnings:
sending incremental file list
var/spool/postfix/private/ifmail
created directory
(at the start after sending incremental file list when creating snapshot dir)usr/lib/i386-linux-gnu/libtasn1.so.6 -> libtasn1.so.6.5.4
snap/mailspring/140/usr/share/icons/Humanity/emblems/24/emblem-shared.svg -> ../../apps/24/gnome-session-switch.svg
usr/src/linux-headers-4.13.0-32/scripts/dtc/include-prefixes/arc -> ../../../arch/arc/boot/dts
var/snap/mailspring/current -> 140
Logged as errors:
var/spool/postfix/private/error
Correctly detected warnings:
skipping non-regular file "var/spool/postfix/dev/random"
Current behavior continues attempting to backup and ends up with some inconsistent state
Enabling --no-inc-recursive
which would incur a substantial delay at the beginning of script run (and potentially high memory usage?) Need to test
Enhancement
logs use 24hr gmt for timestamp. That might be fine for some uber sysop running dozens of machines across multiple time zones but for little guys like me I much prefer the machine/local time. Yes I can subtract/add but it sooo much easier to glance at local timestamps to see if things came out ok. Can you please add an option to use machine time in log timestamps and for the directory of the snapshot. Thx
The status of planned features can be seen below:
use --rsync-path="sudo rsync"
and then change sudoers to not need password for sync? username ALL= NOPASSWD: /usr/bin/rsync
Rsync-Snapshot/data/defaultExclude.txt
Line 10 in 2939289
Path on arch is .local/share/Steam/steamapps
change to /steamapps/
Something like retrying by default up to 5 times if backup fails.
Keep excluded files in --dst
I am unhappy with how this codebase turned out as a result of sort of throwing features in haphazardly.
It could be cleaned up a lot, especially how the loggers are implemented. Loggers should probably be split into their own package.
Local Backups need to be tested. I have only been testing over SSH so far.
enhancement
the maxsnaphosts is an ok management for now but it would be nice to have something more like what BackinTime has
for starters just a --smartremove
which would keep
all in current day, one a day for last 7 days, one a week for last 4 weeks, one a month for last 12 months and one a year. (by default)
then later allow those defaults to be customized
I could probably just use util.promisify on all fs calls
This behavior can have a unintended side effect of creating entire directory trees (ex: a drive isn't mounted).
Throw an error instead.
This can take a long time for large snapshots, should probably log that we are doing it
Would be useful for cloning or restoring
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.