Conversations about life & privacy in the digital age

SpiderOak v2.3 beta: New Command Line Interface

Recognizing that the command line interface lacked some capabilities
compared to the GUI, we’ve given it a full makeover as the central improvement
in 2.3.

We’ve also added a folder changelog feature that lets you see exactly how a
folder changed over time, and a collection of other things.

Full release notes here.

Unless something unexpected arises, this should be the last SpiderOak
release before we merge in the Sync code. So — for those who have inquired –
look for it right around the corner.

Beta download links for all platforms are below. The usual cautions about
running beta software apply, of course. If you decide to download a beta
version, pleease send us a note at beta at spideroak.com so we can update you
on future beta releases.

Here’s the new “--help” text for using the command line. This works
the same across Windows, Mac, and Linux.


Alan@Alan ~ $ /Applications/SpiderOak.app/Contents/MacOS/SpiderOak --help
Usage: SpiderOak basic command line usage:

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v, --verbose         be verbose

  Operational Modes and Commands:
    --backup=TARGET     ad hoc operation: backup whatever exists at TARGET in
                        the filesystem and exit (ignores existing backup
                        selection.)
    --restore=item      Restore a folder, file, or version.
                        Run "--restore help" for more info
    --headless          run in headless mode (without the graphical interface)
    --batchmode         like headless, but will exit when all available work
                        is done
    --scan-only         scan the filesystem for changes and report a summary
    --scan-and-build-only
                        scan the filesystem, and build all possible file
                        system changes as shelved upload transactions, and
                        exit without uploading them

  Information Commands:
    --userinfo, --user-info
                        Show user and device info
    --space             Show space usage information by category and by device
    --tree              Show the hierarchy of stored backup folders
    --tree-changelog    Show a log of how the hierarchy of stored backup
                        folders has changed over time
    --journal-changelog=folder_or_journal
                        Show the changelog of a given folder
    --shelved-x, --print-shelved-x
                        Show information about each shelved upload transaction

  Backup Selection Manipulation Commands:
    --selection, --print-selection
                        Show a list of selected and excluded backup items
    --reset-selection   Reset selection (but preserve excluded files)
    --exclude-file=EXCLUDE_FILE
                        Exclude the given file from the selection
    --exclude-dir=EXCLUDE_DIR
                        Exclude the given directory from the selection
    --include-dir=INCLUDE_DIR
                        Include the given directory in the selection
    --force             Do in/exclusion even if the path doesn't exist

  Maintenance Commands:
    --vacuum            Vacuum SpiderOak's local database (rebuilds indexs and
                        reclaims space)
    --rebuild-reference-database
                        rebuild the SpiderOak reference database (can take
                        awhile)

  Dangerous/Support Commands:
    Caution: Do not use these commands unless advised by SpiderOak
    support.  They can damage your installation if used improperly.

    --empty-garbage-bin
                        purge all deleted items on the current device
    --destroy-shelved-x
                        destroy each shelved upload transaction (not intended
                        for general use -- this will damage your break your
                        account if not used correctly)
    --apply-subscription-xact
                        apply all transactions previously received from remote
                        devices -- (not intended for general use -- this
                        normally happens automatically)

General Beta Download (autodetect OS and architecture, except Ubuntu Gutsy):
https://spideroak.com/directdownload?beta=yes

Platform Specific Downloads

Mac OS X 10.4 and 10.5 (Universal Binary for Intel and PowerPC):
https://spideroak.com/directdownload?beta=yes&platform=mac

Windows 2000, Server 2003, XP, Vista:
https://spideroak.com/directdownload?beta=yes&platform=win

Linux Ubuntu “Hardy” and “Intrepid” 32 bit:
https://spideroak.com/directdownload?beta=yes&platform=ubuntu32

Linux Ubuntu “Hardy” and “Intrepid” 64 bit:
https://spideroak.com/directdownload?beta=yes&platform=ubuntu64

Linux Ubuntu “Gutsy” 32 bit:
https://spideroak.com/directdownload?beta=yes&platform=ubuntu_old32

Linux Ubuntu “Gutsy” 64 bit:
https://spideroak.com/directdownload?beta=yes&platform=ubuntu_old64

Slackware >= 12.1 (preliminary support):
https://spideroak.com/static/main/spideroak-6218.tgz

SpiderOak command line options — much faster, much less memory

The newest released version of SpiderOak supports --batchmode
scheduled operation may be useful to command line users and “GUI only” people
alike. The command line version is considerably faster for most tasks (3-4x by
my estimation), and uses drastically less memory (For me on OS X, an average VM
size of 32meg, peak at 64.)

This is supported in versions 1.0.3753 and newer (released today.) On
Windows and OS X, an existing SpiderOak install should automatically upgrade
the next time it connects to the server. On Ubuntu or Debian, the apt upgrade
process should get the newest version.

Here’s what you can do (so far) from the command line:


Alan@Alan ~ $ /Applications/SpiderOak.app/Contents/MacOS/SpiderOak --help

Usage: SpiderOak basic command line usage:

Options:
  -h, --help            show this help message and exit
  --print-selection     Print a list of selected and excluded backup items
  --reset-selection     Reset selection (but preserve excluded files)
  --exclude-file=EXCLUDE_FILE
                        Exclude the given file from the selection
  --exclude-dir=EXCLUDE_DIR
                        Exclude the given directory from the selection
  --include-dir=INCLUDE_DIR
                        Include the given directory in the selection
  --force               Do in/exclusion even if the path doesn't exist
  --headless            Never start the GUI
  --batchmode           set the config option exit_when_nothing_to_do to true

Most of these are self explanatory. --headless and
--batchmode are the ones I use most often. We’ll be adding support
for much more command line control in the future — send mail to cmdline at
spideroak.com if you want to suggest other options.

--headless just runs SpiderOak with no GUI at all. It just runs,
without printing anything to the console, so there’s no interactiveness or
activity indicators (except what’s written to the spideroak.log.) This
is suitable for use on servers or other environments where you want something
to run continuously, using as few resources as possible, without any user
input.

By the way, one of the benefits to a fault tollerant application design, is
that you don’t have to be nice to it. Feel free to force quit or kill (even
-9) at any time, and SpiderOak will rollback any uncommitted transactions, and
resume uploading or building where it left of — without corruption — the next
time you start. If you need all the available bandwidth to your first person
shooter, Skype, or you’re just trying to make your battery last as long as
possible, just killall SpiderOak and restart it when you want backups
to resume.

The next option is --batchmode (which implies --headless).
This means that SpiderOak will do all available work (i.e. scan the filesystem,
then build and upload everything in the queue, download and replay transactions
from other devices), and then exit. This is a good option for scheduled use.
You can add this to a cron job, or just run it yourself periodically whenever
you want to update your backup set.

SpiderOak is also careful not to start more than one instance of itself at a
time. For example, if you schedule SpiderOak to run in --batchmode
each night, and for the first few days, SpiderOak has so much to upload that it
does not finish before the next scheduled startup time, you don’t need to worry
about coming back to find several instances running.

In the next major release of SpiderOak, we’re restructuring the user
interface to be equally or more efficient as the command line version is now.
So, we expect the 1.5.0 series GUI versions to be several times faster than the
1.0.0 series GUI versions are today.