Skip to content

burtontanner/cron-mysql-backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

$ 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:

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

About

Automated backups for mysql databases

Resources

Stars

Watchers

Forks

Packages

No packages published