https://github.com/slexx1234/dump.sh
MySQL dumper
https://github.com/slexx1234/dump.sh
bash dump mysql shell
Last synced: about 2 months ago
JSON representation
MySQL dumper
- Host: GitHub
- URL: https://github.com/slexx1234/dump.sh
- Owner: slexx1234
- License: mit
- Created: 2018-06-06T09:39:28.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-08T09:32:35.000Z (about 8 years ago)
- Last Synced: 2025-06-21T21:11:46.963Z (about 1 year ago)
- Topics: bash, dump, mysql, shell
- Language: Shell
- Size: 18.6 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 (Можно указать несколько) |
# Установка
```bash
$ cd ~
$ git clone git@github.com:slexx1234/dump.sh.git
```
На этом всё ;) Скрипту больше ничего не надо
# Запуск и пример использования
Думаю, чем чаще делать дампы тем лучше, скрипт осталось воткнуть в `cron`:
```bash
$ crontab -e
```
И добавить что то вроде:
```bash
@hourly /root/dump.sh/dump.sh -r=/root/dumps -u=MYSQL_USER -p=MYSQL_PASSWORD -d=DATABASE_ONE -d=DATABASE_TWO
```
Это всё! Пример выше будет делать дампы двух баз `MySQL` каждый час.
> Для дампов следует создать пользователя только с read-only правами.
```mysql
CREATE USER 'USER_NAME'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT SELECT, LOCK TABLES ON DATABASE_NAME.* TO 'USER_NAME'@'localhost';
FLUSH PRIVILEGES;
```