From 7ada2c59ce5ac7506a14c08050a8b15efb7bff94 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 23 Jan 2026 14:59:20 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20Readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Readme diff --git a/Readme b/Readme new file mode 100644 index 0000000..cec0032 --- /dev/null +++ b/Readme @@ -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). \ No newline at end of file