В общем собрал такое решение, у самого тоже ISPManager 5 Lite.
Задача cron для автоматического бекапа и восстановления базы данных MySQL:
Добавить в .my.cnf сервера базы данных
[mysql]
user=db_user
password=db_password
[mysqldump]
user=db_user
password=db_password
Или в случае как у меня ISPManager 5 с серверами баз данных в Docker /etc/my.cnf.d/mysql-clients.cnf
#
# These groups are read by MariaDB command-line tools
# Use it for options that affect only one utility
#
[mysql]
user=db_user
password=db_password
[mysql_upgrade]
[mysqladmin]
[mysqlbinlog]
[mysqlcheck]
[mysqldump]
user=db_user
password=db_password
[mysqlimport]
[mysqlshow]
[mysqlslap]
Права доступа установить на файл - 400
Перезапустить сервер баз данных
Создать задачу в планировщик заданий с командой:
mysqldump --add-drop-table -P3311 -h127.0.0.1 -udb_user db_name > db_name_`date +%Y-%m-%d`.sql && mysql -P3311 -h127.0.0.1 -udb_user db_name_NEW < db_name_`date +%Y-%m-%d`.sql
Не много пояснений:
Сначала выполняется задача mysqldump сказав && после выполнения бекапа, делаем импорт.
--add-drop-table - Добавляет оператор DROP TABLE перед каждым оператором CREATE TABLE
Без параметров -P и -h можно обойтись, если сервер БД один, или локальный, а так:
-P3311 - порт сервера бд
-h - сервер
Вот например команда, если нужно сегодня, восстанавливать из вчерашнего бекапа:
mysqldump --add-drop-table -P3311 -h127.0.0.1 -udb_user db_name > db_name_`date +%Y-%m-%d`.sql && mysql -P3311 -h127.0.0.1 -udb_user db_name_NEW < db_name_`date --date="yesterday" +"%Y-%m-%d"`.sql
Должно получиться следующее (задача будет выполняться каждый день в 03.00):
Конечно можно ещё добавить команду, чтобы удалялся бекап за вчера, чтобы исключить переполнение.