Fork of https://github.com/Mirocow/mysql_utils
DIrty script for BAckup and REstore MYsql data for dev.
4f3dcf663a
Merge backup_db.sh in backup.sh Merge restore_db.sh in restore.sh Update README |
||
---|---|---|
etc | ||
.gitchangelog.rc | ||
.gitchangelog.tpl | ||
.gitignore | ||
CHANGELOG.md | ||
README.md | ||
backup.sh | ||
restore.sh |
README.md
DiBaReMy for Arch or Other OS
DiBaReMy is a fork of mysql_utils by Mirocow.
Backup and Restore data from MySql/MariaDB tables.
Install
git clone https://forge.leslibres.org/Knah-Tsaeb/DiBaReMy.git
cd DiBaReMy
Configuration
Edit config for DiBaReMy.
cp etc/config.cfg.example etc/config.cfg
nano etc/config.cfg
Edit config for mySQL/MariaDb conection.
cp etc/mysql/debian.cnf.example etc/mysql/local.cnf
nano etc/mysql/local.cnf
Backup all databases
sh backup.sh
Backup selected database
sh backup.sh -d=[database-name]
Restore for selected date
sh backups/[yyyy.mm.dd]/restore.sh
Restore selected DB
sh backups/[yyyy.mm.dd]/restore.sh -d=[database-name]
Automation backup with Cron
nano /etc/default/db_backup
START=yes
nano /etc/cron.daily/db_backup
#!/bin/sh
. /etc/default/db_backup
if [ "$START" = "yes" ]; then
logger "Start databases backup system..."
/bin/bash /root/scripts/mysql_utils/backup.sh --e="some_exclude_database some_else_db"
fi
Check work
# tail -f /var/log/syslog
May 23 12:25:34 db1 logger: BACKUP: ** Dump tecdoc.2013.ALI_COORD
May 23 12:25:35 db1 logger: BACKUP: ** set perm on tecdoc.2013/AL
May 23 12:25:35 db1 logger: BACKUP: ** bzip2 tecdoc.2013/ALI_COOR
May 23 12:25:35 db1 logger: BACKUP: ** Dump tecdoc.2013.ARTICLES
May 23 12:25:43 db1 logger: BACKUP: ** set perm on tecdoc.2013/AR
May 23 12:25:43 db1 logger: BACKUP: ** bzip2 tecdoc.2013/ARTICLES
May 23 12:25:43 db1 logger: BACKUP: ** Dump tecdoc.2013.ARTICLES_
May 23 12:25:43 db1 logger: BACKUP: ** set perm on tecdoc.2013/AR
May 23 12:25:43 db1 logger: BACKUP: ** bzip2 tecdoc.2013/ARTICLES
May 23 12:25:43 db1 logger: BACKUP: ** Dump tecdoc.2013.ARTICLE_C
Tested on
Arch Linux
Help
# bash backup.sh --help
usage: backup.sh options
This script backup all databases.
Usage: backup.sh <[options]>
Options:
-d= | --database Database name
-e= | --exclude= Exclude databases
--exclude-tables= Exclude tables
-c= | --compress= Compress with gzip or bzip2
-v | --verbose Add verbose into output
-l | --lifetime= Lifetime for dump files
--config= Config file of Debian format
--dir= Backup directory
-h | --help This text
Examples:
backup.sh --verbose --compress=
backup.sh --verbose --compress=gzip
backup.sh --verbose --compress=bzip2
backup.sh --verbose --compress= --exclude="mysql"
backup.sh --verbose --compress= --exclude="mysql" --lifetime="3 day ago"
backup.sh --verbose --config="/etc/mysql/debian.cnf" --exclude="mysql" --lifetime="1 day ago"
backup.sh --verbose --dir="/var/backups/mysql" --config="/etc/mysql/debian.cnf" --exclude="mysql" --lifetime="1 day ago"
backup.sh --verbose --dir="/home/backups/mysql" --exclude="mysql" --lifetime="1 day ago"
backup.sh --verbose --dir="/home/backups/mysql" --exclude="mysql" --exclude-tables="tbl_template" --lifetime="1 day ago"