Created Setting up Backup (markdown)

Theodotos Andreou 2018-01-14 15:21:52 +02:00
parent 1b37c6673f
commit ce60906fe0

70
Setting-up-Backup.md Normal file

@ -0,0 +1,70 @@
Here we are describing a basic back-up scenario for our site. We will be using Amazon S3 for the backup.
## Install *Backup and Migrate* Module
Sign in as the *webadmin* user:
```
$ sudo su - webadmin
```
Download and enable the *Backup and Migrate' module:
```
$ cd cms
$ ./vendor/bin/drush dl backup_migrate
$ ./vendor/bin/drush en backup_migrate
```
## Setup CRON
Run `crontab -e` as the *webadmin* user and add this cron job:
```
0 * * * * wget -O - -q -t 1 https://cms.theo-andreou.org/cron.php?cron_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#overlay-context=
```
## Create a scheduled backup
Go to `Configuration -> Backup and Migrate -> Schedules`:
Press the 'Add Schedule':
* Schedule Name: **Daily backup**
* Backup Source: **Entire site**
* Enabled: **Tick**
Keep the default settings on everything else.
## Prepare the backup script
Install prerequisites:
Prepare the following script (*/etc/cron.daily/backup-cms*):
```
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMS_BACKUP_PATH=/srv/webadmin/cms/sites/default/private/backup_migrate/scheduled
S3_CMS_LOG_PATH=/var/log/aws-s3-sync-cms-$(date +%F).log
S3_BUCKET=s3.example.com
aws s3 sync ${CMS_BACKUP_PATH} s3://${S3_BUCKET}/ 2>&1 ${S3_CMS_LOG_PATH}
find ${CMS_BACKUP_PATH} -type f -mtime +30 -delete
find /var/log/aws-s3-sync-*.log -type f -mtime +30 -delete
```
Give execute permissions:
```
# chmod +x /etc/cron.daily/backup-cms
```
**NOTE: This is an over-simplified backup scenario. For large installations you may need to come up with something more elaborate.**
References
----------
* https://www.drupal.org/docs/7/backing-up-and-migrating-a-site/backing-up-a-site
* https://www.drupal.org/docs/7/setting-up-cron-for-drupal/configuring-cron-jobs-using-the-cron-command