Назад | Перейти на главную страницу

задание mysqldump cron выполняется в терминале, но не на вкладке cron

У меня есть эта cron-работа,

/usr/bin/mysqldump -u username -p'password' MyDatabase > /backup/CronBackup/MyDatabaseBackup.sql &>/backup/CronBackup/cronBackupLog.log

Я прошел через эту страницу: Почему мой crontab не работает и как я могу устранить его?

CronBackupLog.log никогда не появляется после запуска cron ...

Бег grep mysqldump cron в /var/log каталог показывает:

[root@server log]# grep mysqldump cron
May 20 00:00:01 server CROND[3104]: (username) CMD (/usr/bin/mysqldump -u username -p'password' MyDatabase > /backup/CronBackup/MyDatabaseBackup.sql)
May 21 00:00:01 server CROND[15318]: (username) CMD (/usr/bin/mysqldump -u username -p'password' MyDatabase > /backup/CronBackup/MyDatabaseBackup.sql)
May 22 00:00:01 server CROND[23517]: (username) CMD (/usr/bin/mysqldump -u username -p'password' MyDatabase > /backup/CronBackup/MyDatabaseBackup.sql)
May 22 10:30:01 server CROND[17670]: (username) CMD (/usr/bin/mysqldump -u username -p'password' --single-transaction MyDatabase > /backup/CronBackup/MyDatabaseBackup.sql)
May 22 11:00:01 server CROND[18543]: (username) CMD (/usr/bin/mysqldump -u username -p'password' MyDatabase > /backup/CronBackup/MyDatabaseBackup.sql &>/backup/CronBackup/cronBackupLog.log)

так что я знаю, что он должен как минимум запускаться .. Проблема в том, что если я запускаю команду, которую пытаюсь выполнить, в терминале, она выполняется, и через пару минут она завершается, и у меня есть новая резервная копия базы данных. Если я захожу в phpmyadmin, cron jobs и вставляю его для запуска каждые 12 часов или 30 минут или что бы то ни было (обычно 12 часов, как вы можете видеть выше), он просто не выполняет никаких критических задач.

Я заинтересован в создании имени файла, основанного на времени, но, вероятно, после того, как я заработаю базовый.

Любые другие советы о том, как я могу решать проблемы, были бы полезны, я чувствую, что что-то полностью упускаю. Спасибо.

Будет ли работать как пользователь root по сравнению с пользователем со всеми разрешениями mysql? Как я уже сказал, запуск его в терминале работает, и это делается с использованием пользователя с высоким разрешением. Я просто не уверен, требуется ли запуск cron с правами root.

Бег

CentOS 6.10
MySQL Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using  EditLine wrapper

Я лично всегда создаю сценарий резервного копирования в bash, а затем использую его в crontab, а не с помощью самой команды mysqldump, это обеспечивает больший контроль и упрощает отладку, хотя использование команды mysqldump также должно работать. Мне интересно, добавляю ли --single-transaction в cron помогло бы.

/usr/bin/mysqldump -u username -p'password' --single-transaction MyDatabase > /backup/CronBackup/MyDatabaseBackup.sql

Также убедитесь, что у пользователя cron есть разрешение на запись в /backup/CronBackup каталог.

Также вот хорошая ссылка https://www.linode.com/docs/databases/mysql/use-mysqldump-to-back-up-mysql-or-mariadb/