terminus-plugin-project / terminus-backup-all-plugin
Backup All - A Terminus plugin to backup all available Pantheon sites with one command.
Installs: 1 461
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Type:terminus-plugin
Requires
- php: ^5.5 || ^7.0
Requires (Dev)
README
Version 2.x
Terminus plugin to backup all available Pantheon sites with one command.
Usage:
$ terminus backup-all:[create|get|list] [--env=<id>] [--element=<element>] [--framework=<framework>] [--skip=<items>] [--date=<YYYY-MM-DD>] [--changes=<change>] [--team] [--owner=<user>] [--org=<org>] [--name=<regex>] [--async]
The associative arguments are all optional and the same filtering rules as the terminus site:list
command apply.
The --env option value filters by environment. Valid values include dev, test, live or any valid multidev environment.
The --element option value filters by element. Valid values include code, database or files.
The --framework option value filters by framework. Valid values include backdrop, drupal, drupal8 or wordpress.
The --skip option value is a comma separated list of one or more elements, entire environments or specific site environments to omit from backups.
The --date option value filters by a specified date (or colon separated range) and returns the backups for any date if omitted.
The --changes option is only necessary when the environment is in sftp connection mode and decides how to handle pending filesystem changes. Valid values include commit, ignore or skip and the default is commit which will create an automatic commit of any pending filesystem changes before completing the backup. The difference between ignore and skip is ignore will continue and make the backup anyway (without pending filesystem changes), whereas skip will not.
The --async option value will process the request asynchronously.
Examples:
$ terminus ball:create
This is an alias for the terminus backup-all:create
command and will backup all elements of all environments for all available sites and perform the backup after committing pending filesystem changes.
$ terminus ball:create --async
Same as above but process the request asynchronously.
$ terminus ball:create --element=code --changes=ignore --skip=test,my-experiment.dev
Backup the code only of all environments for all available sites and perform the backup without committing pending filesystem changes, skipping all test environments and the specific site environment my-experiment.dev
.
$ terminus ball:create --framework=drupal,drupal8
Backup all elements of all environments for all available sites that include the drupal and drupal8 (Drupal 6, 7 and 8) frameworks and perform the backup after committing pending filesystem changes.
$ terminus ball:list
This is an alias for the terminus backup-all:list
command and will list the backups of all elements in all available site environments.
$ terminus ball:list --env=dev
List the backups of all elements in the dev environment only of all available sites.
$ terminus ball:list --element=code
List the backups of the code only for all available site environments.
$ terminus ball:list --framework=drupal,drupal8
List the backups of all elements in all environments for all available sites that include the drupal and drupal8 (Drupal 6, 7 and 8) frameworks.
$ terminus ball:list --date=YYYY-MM-DD
List the backups for all available site environments on the specified date.
$ terminus ball:list --date=YYYY-MM-DD:YYYY-MM-DD
Same as above but within the specified colon separated date range.
$ terminus ball:list --name=awesome --date=YYYY-MM-DD
List the backups for all available site environments on the specified date that contain awesome
in the name.
$ terminus ball:get
This is an alias for the terminus backup-all:get
command and will retrieve the latest files backup for all available site environments.
$ terminus ball:get --name=awesome
Retrieve the latest files backup for all available site environments that contain awesome
in the name.
$ terminus ball:get --element=db
Retrieve the latest database backup for all available site environments.
$ terminus ball:get --framework=drupal,drupal8
Retrieve the latest files backup of all environments for all available sites that include the drupal and drupal8 (Drupal 6, 7 and 8) frameworks.
$ terminus ball:get --env=dev --element=code --date=YYYY-MM-DD
Retrieve the latest code backup of the dev environment only for all available sites on the specified date.
$ terminus ball:get --env=dev --element=code --date=YYYY-MM-DD:YYYY-MM-DD
Same as above but within the specified colon separated date range.
$ terminus ball:get --name=awesome --date=YYYY-MM-DD
Retrieve the latest files backup for all available site environments on the specified date that contain awesome
in the name.
Installation:
For installation help, see Extend with Plugins.
mkdir -p ~/.terminus/plugins composer create-project -d ~/.terminus/plugins terminus-plugin-project/terminus-backup-all-plugin:~2
Testing:
Replace my-test-site
with the site you want to test:
export TERMINUS_SITE=my-test-site cd ~/.terminus/plugins/terminus-backup-all-plugin composer install composer test
Configuration:
If you wish to automate backups, see the core terminus backup:automatic
command.
Help:
Run terminus help ball:[create|get|list]
for help.