cron-mysql-backup
Version:
Backup your mysql database on any interval
90 lines (63 loc) • 2.46 kB
Markdown
# Cron Mysql Backup
### The cron-mysql-backup module allows you to automate mysql backups on regular intervals
### Mysql dump files will be placed in a directory of your choice
### You will get confirmation emails as often as you would like
### Emails will get sent anytime something goes wrong (cannot connect to database etc.)
### Backups will never fill the entire disk space. The oldest ones will be removed first
## Getting Started
Install cron-mysql-backup using npm:
```console
$ yarn add cron-mysql-backup
or
$ npm install --save cron-mysql-backup
```
You will need a sendgrid account to send emails from.
## Usage
Import cron-mysql-backup and backup every hour on the hour:
```javascript
const cronMysqlBackup = require('cron-mysql-backup');
let options = {
directory:'./dumps',
cronSchedule:" 0 * * * *",
connection:{
host: 'localhost',
user: 'make-a-read-only-user',
password: 'password',
database: 'database',
},
sendTo:'test@test.com', // Notifications will be sent to this address. This can also be an array of email addresses
sendFrom:'create-an-email@gmail.com',
sendGridApiKey:'sendGridApiKeyHere',
sendSuccessEmailAfterXBackups:10, //Send confirmation email after every 10 backups()
maxBackups: 7*24 // the maximum number of backups(a weeks worth of hourly backups)
};
cronMysqlBackup();
```
## PM2
Use a process manager to restart your process if it ever fails
https://www.npmjs.com/package/pm2
## Cron Syntax
This is a quick reference to cron syntax and also shows the options supported by cron-mysql-backup.
### Allowed fields
```
# ┌────────────── second (optional)
# │ ┌──────────── minute
# │ │ ┌────────── hour
# │ │ │ ┌──────── day of month
# │ │ │ │ ┌────── month
# │ │ │ │ │ ┌──── day of week
# │ │ │ │ │ │
# │ │ │ │ │ │
# * * * * * *
```
### Allowed values
| field | value |
|--------------|---------------------|
| second | 0-59 |
| minute | 0-59 |
| hour | 0-23 |
| day of month | 1-31 |
| month | 1-12 (or names) |
| day of week | 0-7 (or names, 0 or 7 are sunday) |
### More Examples At
https://www.npmjs.com/package/node-cron