Command Line Interface for macOS

CloudBerry Backup command line interface allows to back up and restore files from cloud storage, edit global options, list backup plans and account, etc. Command line interface can be used for integrating backup process into production environment.

CloudBerry Backup command line interface is implemented by a little tool called cbb.

Start a Terminal session and navigate to the application folder:

cd /Applications/yourAppName.app/Contents/MacOS

Activate the Product

Activate license. (Email & key are required):

./cbb activatelicense -e "email" -k "license_key"

(where "email" is your personal email and "license_key" is your license key that you received when buying the product).

Request trial license. (Email is required):

./cbb activatelicense -e "email" -t

Release license

./cbb releaselicense

Freeware version (200GB limit for cloud backup, 1TB limit for local backup; no compression/encryption):

./cbb activateLicense -e "email" -free -un userName

where: -un - user name to register freeware version.

You will get a registration key by email and the next step will be to register:

./cbb activateLicense -e "email" -free -oa RegistrationKey

Offline Activation

If you don't have an ability to activate CloudBerry Backup online you can use offline activation.

  1. Generate offline license request using your email and license key:./cbb activateLicense -e "email" -k "license_key" -or(where "email" is your personal email and "license_key" is your license key that you received when buying the product).As an output you will get a service key.
  2. Send the service key to support@cloudberrylab.com. You will receive the activation key by email.
  3. Activate license key./cbb activateLicense -e "email" -k "license_key" -oa "activationkey_received"
  4. The product is activated.

Set Up a Storage Account

First of all, you need to configure a backup storage account. Run the ./cbb addAccount command where to specify storage type (-st), its credentials and an account display name (-d):

-st storageType: AmazonS3, Azure, FileSystem, Openstack, OracleCloud, SoftLayer, Rackspace, HPCloud, HPHelion

Add Amazon S3 cloud storage account:

./cbb addAccount -d DisplayName -st AmazonS3 -ac AccessKey -sk SecretKey -c BucketName [-bp BackupPrefix] -ssl

Add Azure Blob cloud storage account:

./cbb addAccount -d DisplayName -st Azure -ac AccountName -sk SharedKey -c ContainerName [-bp BackupPrefix] -ssl

Add OpenStack storage account:

./cbb addAccount -d Display_Name -st Openstack <-un UserName> <-ak ApiKey> <-c BackupContainer> <-ep Endpoint> [-useInternalUrl ] [-reg Region] [-bp BackupPrefix] <-kv no> | <-kv 2 <-tn TenantName | -ti TenantID> > | <-kv 3 [-us <-pn project_name> | <-pi project_id>] <-dn DomainName | -di DomainID>>

where
-kv is a Keystone authentication version;
-us is "Use scope" option that is used for Keystone version 3 only (possible values: yes / no)
-reg is a region of storage datacenter.

You can also add a particular OpenStack compatible storage account like OracleCloud, SoftLayer, Rackspace. HP Cloud.
Use the following commands to get more information:

./cbb addAccount -d Display_Name -st OracleCloud -h

Supported regions (-reg):

./cbb addAccount -d Display_Name -st SoftLayer -h

Supported regions (-reg): Amsterdam, Frankfurt, Hong Kong, London, Melbourne, Mexico, Milan, Montreal, Paris, San Jose, Sao Paolo, Sydney, Singapore, Tokyo, Toronto, US Dallas

./cbb addAccount -d Display_Name -st Rackspace -h

Supported regions (-reg): US-based, UK-based.

./cbb addAccount -d Display_Name -st HPCloud -h

Add file system storage account for local backup:

./cbb addAccount -d DisplayName -st FileSystem -c Path [-bp backup_prefix]

where: -bp - a backup prefix (a computer name by default). It is an advanced option that is used to identify backup for a specific computer.

To edit account use the ./cbb editAccount command:

- for Amazon S3:

./cbb editAccount -d displayName [-n newDisplayName] [-ac accessKey] [-sk SecretKey] [-c BucketName] [-bp BackupPrefix] [-ssl ]

- for Azure Blob:

./cbb editAccount -d displayName [-n newDisplayName ] [-ac AccountName] [-sk SharedKey] [-c ContainerName] [-bp BackupPrefix] [-ssl ]

- for OpenStack:

./cbb editAccount -d displayName [-n newDisplayName] <-un UserName> <-ak ApiKey> <-c BackupContainer> <-ep Endpoint> [-useInternalUrl ] [-reg Region] [-bp BackupPrefix] <-kv no> | <-kv 2 <-tn TenantName | -ti TenantID> > | <-kv 3 [-us <-pn project_name> | <-pi project_id>] <-dn DomainName | -di DomainID>>

- for File System:

./cbb editAccount -d displayName [-n newDisplayName] [-c Path] [-bp BackupPrefix]

To list accounts, use the command:

./cbb account -l

To delete account use the ./cbb deleteAccount command:

./cbb deleteAccount AccountName1, AccountName2,…

Create a Backup Plan

To create a backup plan, use the ./cbb addBackupPlan command.

For example, you are going to:

./cbb addBackupPlan -n "Backup my docs" -a "myaccount" -f "/home/NAME/Documents/" -ef "/home/NAME/Documents/books/" -c yes -every week -at "23:00" -weekday "mo, tu, we, th, fr" -notification on

To get general help for the commands, run the following command:

./cbb addBackupPlan

Output:

./cbb addBackupPlan -n planName -a [-en ] [[-rrs ] | [-standardIA ]] [-sse ] -f -ef [-es ] [-c ] [-ea -ep password] [-bef ] [-purge delete_after_time -dlv -keep keep_versions_number] [-dl ] [[[-every [day, week, month, dayofmonth] <-workTime xx:xx-xx:xx -recurrencePeriod period | -at timeOfDay>] [-day [1..31]] [-weekday list ofWeekDays] [-weeknumber weeknumber] ] | -at onceDateTime] ] [-notification ] [-subject Subject]

Note : the sequence of parameters is strongly fixed.

The output contains special parameters, where:

Backup Settings

-n - a plan name.

-a - a display name of the backup storage account (the -n param in addAccount command).

-en - enable a plan after creation. Possible values: yes (default) | no.

-rrs - use RRS. Possible values: yes | no (default).

-standardIA - use Standard-IA. Possible values: yes (default) | no.

-sse - use SSE. Possible values: yes (default) | no.

-f - file or folder to back up. To specify multiple files/folders, use -f for every file/folder.

  • Example:-f "/home/USERNAME/Downloads/stats.txt" -f "/home/USERNAME/Downloads/WeeklyReports"

-ef - exclude a file or a directory from a backup procedure. To exclude more than one object, use -ef for each object.

  • Example:-f "/home/USERNAME/Downloads/stats.txt" -f "/home/USERNAME/Downloads/WeeklyReports"-ef "/home/USERNAME/Downloads/WeeklyReports/Sunday"-ef "/home/USERNAME/Downloads/WeeklyReports/unrelated.txt"

-es - exclude system files from the backup procedure. Possible values: yes (default), no. The following folders will be excluded: /bin; /boot; /cdrom; /dev; /etc; /media; /lib; /lib64; /lost+found; /mnt; /opt; /proc; /run; /sbin; /srv; /tmp; /usr; /var.

-c - use compression. Possible values: yes, no (default).

-ea - enable encryption and set an encryption algorithm to use. Possible values: AES128. Used only with -ep parameter.

-ep - encryption password. Used only with -ea parameter.

  • Example:-ea "AES128" -ep "qwerty123"

-bef - back up empty folders. Possible values: yes, no (default).

Retention settings

-purge - Purge versions that are older than the defined period (except the latest version). Possible values: d(day), w(week), m(month).

-dlv - Delete the last version if it is older than the defined period. Possible values: yes, no.

-keep - Keep a limited number of versions. Possible values: number.

-dl - Delete files that have been deleted locally. Possible values: yes,no.

-dld - Keep the files deleted locally for the specified number of days in case you relax the purge settings and the files become valid again. Possible values: number of days.

  • Example: keep only 3 file versions -keep 3
  • Example: keep file versions during 1 week without keeping the last version -purge 1w -dlv

Schedule settings

Schedule settings allow you to run backup at a certain time (-at) or to have a recurring backup (-every). Note: Time is set in UTC:

-every - specify a recurring schedule. Possible values: day, week, month, dayofmonth. Two types of schedules: recurring at a certain time (use with -at) and recurring from / to time within a period (use with -workTime in format hh:mm-hh:mm and -recurrencePeriod in minutes).

-workTime - specify a time when a plan can be running. Format xx:xx-xx:xx. Example 1: 12:32-17:00; Example 2: 23:00-04:00; may be used for each recurring shedule, used only with -recurrencePeriod and without -at.

-recurrencePeriod - specify recurrence period in minutes.

-at - specify datetime or time of a schedule. Example: -at "16.02.2015 12:32" or -at "12:32" for each recurring schedule.

-every day

  • Example (with -at)-every day -at "12:31"
  • Example (with -workTimeand -recurrencePeriod)-every day -workTime "12:00-16:00" -recurrencePeriod 15

-every week - run every week on a specified day(s) of the week. Used with the -weekday listOfWeekDays parameter. Specify the day(s) of the week for a week schedule: "su, mo, tu, we, th, fr, sa". Use the same options to run -at or with -worktime and -recurrencePeriod.

  • Example:-every week -at "13:00" -weekday "mo,su"

-every month - run every month in a specified day(only one day in a month). You need to specify -weekday and -weeknumber. Possible values: First | Second | Third | Fourth | Penultimate | Last. And the same options to run -at or with -worktime and -recurrencePeriod.

  • Example:-every month -at "14:00" -weekday "mo" -weeknumber "Last"

-every dayofmonth - run every specified day in a month. You need to specify -day. Possible values: 1..31.

  • Example:-every dayofmonth -at "03:00" -day 30

-r ./cbb plan -r "plan_name"

Notification Settings

-notification - specify to receive notification email when backup fails (errorOnly) or in all cases (on). Possible values: errorOnly (default) | on.

-subject - specify a subject of notification email. Available macroses: %COMPUTER_NAME%, %RESULT%, %PLAN_NAME%.

To set an email for notification, run the following command:

./cbb option -set -notification -e "email" -u "userName"

Create a Restore Plan

To create a restore plan use the ./cbb addRestorePlan command.

For example, you are going to restore only new files from "/" folder with sync before restore, to /home/link/workspace/testRestore/. Files are encrypted with the pass = qwert123. Run restore every day at 11:40:

./cbb addRestorePlan -n "RestorePlan" -a "myaccount" -sy yes -f "/" -ep "qwert123" -se no -ol no -de "/home/link/workspace/testRestore/" -on yes -every day -at "11:40"

To get general help for the commands, run the following command:

./cbb addRestorePlan

Output:

./cbb addRestorePlan -n planName -a -en [yes|no] -sy [yes|no] -rt [LatestVersion|[PointInTime date]] -f [-ep password] [-se yes|no] [-ol yes|[no -de location] [-on yes|no] [[[-every [day, week, month, dayofmonth] <-workTime xx:xx-xx:xx -recurrencePeriod period | -at timeOfDay>] [-day [1..31]] [-weekday list OfWeekDays] [-weeknumber weeknumber] ] | -at onceDateTime] ] [-notification [errorOnly | on | off]] [-subject Subject]

Note: the sequence of parameters is strongly fixed.

The output contains special parameters, where:

Restore Settings

-n - a plan name.

-a - a display name of the backup storage account (the -n param in addAccount command).

-en - enable a plan after it has been created. Possible values: yes (default) | no.

-sy - sync before restoring. Possible values: yes| no (default). You need to sync prior to restoring if you set up a restore plan on a computer that is different from the one you have run a backup on.

-rt - a restore type. Possible values: LastVersion (default) | PointInTime. For PointInTime you need to specify a timestamp. Example: -rt PointInTime "16.02.2015 12:32"

-f - restore a file or a folder. Specify a full path to the file or folder that you are going to restore. To restore multiple objects, use multiple -f parameters.

  • Example:-f "/home/USERNAME/Downloads/file" -f "/home/USERNAME/Downloads/Folder"

-ep - a decryption password.

-se - skip existing files. Possible values: yes (default) | no.

-ol - restore to the original location. Possible values: yes | no.

-de - specify a restore destination, used only with the -ol = no.

  • Example:-ol no -de "/home/USERNAME/anotherFolder/"

-on - restore only new files. Possible values: yes (default) | no.

Schedule settings

The schedule settings for the restore process are the same as for the backup process.

Notification settings

The notification settings for the restore process are the same as for the backup process.

Manage Plans

You can also delete, enable/disable a plan, list plans.

To list all the existing plans, use the ./cbb plan -l command.

To run a plan use the ./cbb plan -r PlanName command.

To stop a plan use the ./cbb plan -s PlanName command.

To delete a plan, use the ./cbb deletePlan -n PlanName command, where:

n - a plan name.

To enable/disable a plan, use the ./cbb changePlanState -n PlanName -s on | off command, where:

n - a plan name.
s - plan state. Possible values: on | off.

Troubleshoot and Report Issues

Use the following command to report an issue or send any feedback:

./cbb sendLog -u username -e email -m message, where:

u - a user name (any).
e - an email address to which the log entry should be sent
m - a short description of the issue/feedback.

Example

./cbb sendLog -u "John Smith" -e "john.smith@company.com" -m "There is an error during creating backup plan..."

To get general help for the commands, run the ./cbb command.

How to Uninstall

Delete the file which starts the daemon:

sudo rm /Library/LaunchDaemons/cloudBackup.plist

Delete folders:

sudo rm -r /Applications/ABC Backup.app/ /opt/local/ABC Backup/

Kill the daemon:

sudo killall ./cbbDaemon