Warning
|
Being too busy to worry about backup is like being too busy driving a car to put on a seatbelt. |
- bc-destination
-
The location where the files are copied. Can be:
SSH
,LOCAL
,S3
, etc… - bc-node
-
Utility which resides on client computer.
bc-node
backups data tobc-destination
.
The app uses rsync
to periodically backup directories on your computer to different hard drives or to remote hosts thru SSH connections.
The backup is incremental - only changed files are copied. Also the backup configuration is very flexible. Each directory can be backuped to multiple destinations. And for each backup task you can specify different backup schedule using CRON expression. So, for example, you can backup your books collection to external HDD each hour and to remote SSH host each day.
App runs in background but there is an icon in system tray, which changes each time backup is running.
Also the app has a web UI, which can be launch from a system tray. A web UI lists all the backup tasks with some historical information about each task. For example, it shows information about few last backups: when it was triggered, how many data were transferred, how long it took, etc….
You can trigger ad-hoc backup tasks from web UI.
In addition, the app can notify you about different events thru XMPP (other channels are comming…).
-
Download ZIP distribution from latest release;
-
Unpack to any location;
-
Create
application.yml
file inconfig
directory (see application-example.yml as reference); -
Setup SSH bc-destination;
-
Run
start-gui.cmd
.
See application-example.yml for configuration options.
The main idea:
-
Each
bc-node
has uniqApplication Id
. This ID is used in folder layout on bc-destinations. Also in future this ID might be used in bc-master to identify backup clients. -
Configuration contains a list of bc-destinations. Currently
SSH
andLOCAL
destinations are supported. -
Configuration contains a list of backup items. For each backup item you should specify
Destination ID
and CRON expression.
-
Ensure
JAVA_HOME
env variable points to JDK8 -
See
x-build.cmd
as an example build script. Essentially that it does is simple:mvn clean install
-
Main class:
synitex.backup.Application
-
VM options:
-
-Djava.awt.headless=false
, for GUI mode -
-Djava.awt.headless=true
, for CLI mode
-
-
Program arguments:
--spring.profiles.active=dev
. To load configuration file from./bc-node/config/application-dev.yml
.You can copy example configuration file
./bc-distro/config/application-example.yml
to./bc-node/config/application-dev.yml
. -
Working directory:
{project.path}\bc-node