sbt (SyncML Backup Tool)
The command-line sbt
tool allows you to perform a complete backup
of a server that exposes its data via
SyncML. It does this by
querying the server what data stores it contains, then requesting all
the content, and storing it opaquely and format agnostically in a
local directory. During a restore
operation, it simply tells the
server to delete all of its data and uploads the previously downloaded
version.
Installation
With npm
installed, simply issue the following command:
npm install -g sbt
Note that if you are using node pre-0.8, you will need to explicitly
install an earlier version of the request
module, e.g.:
npm install -g sbt request@2.12.0
Also, in some installations of sqlite3
, it doesn't correctly
auto-compile the sqlite3 library, in which case you will need to do
this:
npm install -g sbt request@2.12.0 node-gypcd /usr/local/lib/node_modules/sbt/node_modules/sqlite3node-gyp configure
Usage
Typical usage comprises first doing a backup
and then at some
point a restore
. sbt does, however, also support doing a
discover
operation (which simply describes the remote server's
storage structure) and a sync
operation, which tells sbt to
resolve changes to a snapshot that have been made since the last
backup or sync.
sbt backup
call:
sbt --server URL --username USERNAME --password PASSWORD backup DIRECTORYexample:sbt -s https://example.com/funambol/ds -u guest -p guest backup ./backups/latest
Then, to restore the server to that snapshot, simply use the restore
command:
sbt restore DIRECTORYexample:sbt restore ./backups/latest
Other supported commands:
sbt --help # shows a help screen with all supported optionssbt discover DIR # displays the storage structure of the remote serversbt sync DIR # brings the DIRectory and the remote server into sync
Enjoy!