Добавить Readme

This commit is contained in:
Andrey 2026-01-23 14:59:20 +07:00
parent a898a692af
commit 7ada2c59ce

72
Readme Normal file
View File

@ -0,0 +1,72 @@
Вот надёжный шаблон скрипта для резервного копирования MySQL / MariaDB, полностью аналогичный предыдущему PostgreSQL-скрипту: с логированием, сжатием, безопасной передачей пароля, ротацией старых бэкапов и поддержкой одной или всех баз.
Файл: mysql-backup.sh
Как передать пароль безопасно?
Рекомендуется: файл ~/.my.cnf
Создайте /root/.my.cnf:
chmod 600 /root/.my.cnf
Содержимое:
[client]
host = localhost
port = 3306
user = root
password = ваш_пароль
Тогда не нужно указывать MYSQL_PASSWORD в скрипте — mysqldump сам прочитает настройки.
Это самый безопасный способ: пароль не виден в ps, не хранится в скрипте.
Альтернатива: раскомментируйте MYSQL_PASSWORD
Скрипт создаст временный .cnf с правами 600 и удалит его после работы (trap гарантирует это).
Как использовать:
Сохраните как /root/mysql-backup.sh
Сделайте исполняемым:
chmod +x /root/mysql-backup.sh
Отредактируйте:
MYSQL_DB → например, grafana, zabbix, wordpress
Или оставьте "all", чтобы бэкапить всё
Добавьте в cron:
0 1 * * * /root/mysql-backup.sh
Логи:
/root/backups/mysql/backup.log
Важные опции mysqldump:
Важные опции mysqldump:
Опция
--single-transaction
Для InnoDB: делает согласованный дамп без блокировки таблиц
--routines
Сохраняет хранимые процедуры и функции
--triggers
Сохраняет триггеры
--events
Сохраняет события планировщика
--databases
Гарантирует, что в дампе будет CREATE DATABASE
Восстановление:
gunzip -c /root/backups/mysql/grafana-20260123-0220.sql.gz | mysql -u root -p
Или, если у вас ~/.my.cnf:
gunzip -c backup.sql.gz | mysql
Если вы используете MariaDB — всё работает точно так же (она совместима с MySQL).