slexx1234 / dump.sh

MySQL dumper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dump.sh

Это скрипт дампа MySQL баз данных. Он раскладывает дампы по разным папкам и проверяет их размер, если размер дампа больше 0Б скрипт думает что всё хорошо. Всё дампы сжимаются.

Папки которые он создаёт:

  • daily - Здесь лежат дампы которые называются по номеру для недели в месяце. Хранятся дампы только за последнюю неделю
  • hourly - Файлы в этой папке называются по номеру часа (в 24 часовом формате), хранится только последние 24 часа (файла)
  • mountly - Здесь лежат файлы которые называются именем базы данных + год + месяц, файлы отсуда не удаляются

Родительская директория, в которой будут находиться данные директории, задается параметром -r.

Опции

Опция По умолчанию Обязательно? Описание
-r, --root Да В этой директории будут храниться дампы
-u, --user Да Имя пользователя MySQL
-p, --password null Нет Пароль MySQL
-h, --host localhost:3306 Нет Хост MySQL, порт через двоеточие
-d, --database () Нет Имя баз данных MySQL (Можно указать несколько)

Установка

$ cd ~
$ git clone git@github.com:slexx1234/dump.sh.git

На этом всё ;) Скрипту больше ничего не надо

Запуск и пример использования

Думаю, чем чаще делать дампы тем лучше, скрипт осталось воткнуть в cron:

$ crontab -e

И добавить что то вроде:

@hourly /root/dump.sh/dump.sh -r=/root/dumps -u=MYSQL_USER -p=MYSQL_PASSWORD -d=DATABASE_ONE -d=DATABASE_TWO

Это всё! Пример выше будет делать дампы двух баз MySQL каждый час.

Для дампов следует создать пользователя только с read-only правами.

CREATE USER 'USER_NAME'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT SELECT, LOCK TABLES ON DATABASE_NAME.* TO 'USER_NAME'@'localhost';
FLUSH PRIVILEGES;

About

MySQL dumper

License:MIT License


Languages

Language:Shell 100.0%