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

Crontab пользователя root CentOS для mysqldump

Я использую CentOS 6.6. Я пытаюсь настроить crontab. Я сделал сценарий .sh, который отлично работает при ручном выполнении. Команда следующая:

mysqldump --skip-lock-tables --single-transaction --hex-blob --flush-logs --master-data=2 -u root -p'password' database1 > database2.sql

Однако, когда я попытался настроить его в файле / etc / crontab, он не запустился. Вот содержимое файла crontab.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
* * * * * root /home/user/public_html/default1.sh

Кроме того, я хотел бы, чтобы этот скрипт выполнялся в каталоге

/home/user/public_html

Мой сценарий называется default1.sh, и я помещаю его в каталог / home / user / public_html.

Моя цель - каждую минуту выполнять эту команду (или теперь сценарий default1.sh) от имени пользователя root в / home / user / public_html.

Кроме того, -u root неверный синтаксис. Должно быть -uroot AFAIK.

В любом случае, попробуйте войти в свою запись cron, добавив

>> /somefile.log 2>&1

в строку cron

Вам нужно проверить несколько вещей:

  1. Убедитесь, что у вашего скрипта есть соответствующие разрешения. Вам нужно иметь x (по крайней мере, для пользователя) быть исполняемым.
  2. Удостовериться mysqldump находится в crontab PATH. В противном случае укажите абсолютный путь в вашем скрипте.
  3. Я рекомендую указать абсолютный путь к выходному файлу, чтобы убедиться, успешно ли он сгенерирован. В противном случае вы можете запутаться в расположении файла.