Backup Dropbox

To set-up a server for backing up DropBox accounts.

Set-up your gpg keys (see Backup GPG keys).

Create a pillar file listing the name of the accounts you want to backup e.g. sites/dropbox.sls:

dropbox:
  accounts:
    - pat_hatherleigh_info
    - web_pkimber_net

Hint

Our standard for the names is to take the email address of the Dropbox account and replace @ and . with _ e.g. pat@hatherleigh.info becomes pat_hatherleigh_info.

Include this sls file into the top.sls file for your server e.g:

'dropbox':
  - global.gpg
  - global.users
  - sites.dropbox

Apply the salt states to your server. This will create folders, backup scripts, cron and supervisor tasks for each account e.g:

/home/web/repo/files/dropbox/pat_hatherleigh_info
/home/web/opt/backup_dropbox_pat_hatherleigh_info.sh
/etc/cron.d/dropbox
/etc/supervisor/conf.d/dropbox_pat_hatherleigh_info

Initialise

Each Dropbox account will need to be initialised. Log into your server:

sudo -i

Find the log file for the supervisor task for your account:

ls -l /var/log/supervisor/

Note

If the file is empty (0 bytes), then log into the supervisor console (supervisorctl) and check the status of the process. If you see this message, can't find command '/home/web/.dropbox-dist/dropboxd' then DropBox was probably installed after the supervisor script was created. Just re-start the process to resolve this issue.

Follow the file e.g:

tail -f /var/log/supervisor/dropbox_pat_hatherleigh_infok-stdout---supervisor-NI0cjP.log
# sample output
This computer isn't linked to any Dropbox account...
Please visit https://www.dropbox.com/cli_link_nonce?nonce=f123abc123abc123abc123abc123abc1 to link this device.

Open a private (or incognito session) in a browser . Log into the DropBox account you want to sync and paste in the URL.

The script will tell you that the account is linked e.g:

This computer is now linked to Dropbox. Welcome Pat

To check the sync, look in the following folder (update folder names as required):

sudo -i -u web
ls -l /home/web/repo/files/dropbox/pat_hatherleigh_info/Dropbox/

To initialise the backup run the backup script with the full argument e.g:

/home/web/opt/backup_dropbox_pat_hatherleigh_info.sh full

Restore

To restore a document or folder, follow the example commands in Duplicity.

Usage

Note

For the following, refer to your company Checklist and replace 123@tv-s009.rsync.net with your rsync.net Host address.

To check the rsync.net usage (by domain), create a script for in your ~/bin as follows. At your command prompt type the following:

gedit ~/bin/rsync-usage

Then type or paste the following 2 lines (Please note: the backslash before the asterisk is important:

#!/bin/bash
ssh 123@tv-s009.rsync.net du -sh \*

Save the file and close gedit. Then type the following at your command prompt:

chmod 755 ~/bin/rsync-usage

Now to get the analysis of usage on our rsync account, you can type:

rsync-usage

Stop dropbox running

If salt is used to configure dropbox on a server (“sites.dropbox” from the server config of top.sls), removing it from the salt configuration does remove it from the server.

To remove from the server log on the server and change to the superviser configuration directory

cd /etc/superviser/conf.d

The dropbox configuration file will be called

dropbox_<email address with ‘@’ and ‘.’ replaced with ‘_’>

for example if your dropbox login is web@hatherleigh.info the file will be called:

dropbox_web_hatherleigh_info

Delete this file using:

sudo rm dropbox_web_hatherleigh_info

Or comment the contents of the file by putting # at the beginning of each line using your favourite editor.

Then get the supervisor daemon to reread the configuration using:

supervisorctl reread

This will probably report:

dropbox_web_hatherleigh_info: disappeared

And then apply the configuration:

supervisorctl update

This will stop the processes respawning once stopped but will not stop existing processes.

Check the existing dropbox processes using the command:

ps -ef | grep dropbox | grep -v grep

Terminate these using your favourite process termination method e.g.:

pkill -f dropbox

Verify that app processes are terminated using the above process status command.