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

задание cron дает мне отказ в разрешении при запуске

Пытался запустить cron, но продолжал получать разрешение. Ошибка в моем /var/spool/mail/root

"/bin/sh: /disk1/archives/backup.website.cron: Permission denied"

Это мое ls -hal для каталога, в котором находятся мои задания cron

drwxr-xr-x 4 root root 4.0K Feb  6 04:22 .
drwxr-xr-x 6 root root 4.0K Feb  5 08:14 ..
-rwxr-xr-x 1 root root  105 Feb  6 04:22 backup
-rw-r--r-- 1 root root  102 Feb  5 08:34 backup.database.cron
-rw-r--r-- 1 root root   75 Feb  5 08:33 backup.website.cron
drwxr-xr-x 2 root root 4.0K Feb  5 08:35 databases

у меня есть backup установлен в chmod +x

Файл резервной копии выглядит так

* * * * *  root /disk1/archives/backup.website.cron
30 * * * * root /disk1/archives/backup.database.cron

Я запустил cron с

crontab /disk/1/archives/backup

Я вижу, что мои задания cron настроены на запуск, потому что когда я crontab -l я получил

[root@web archives]# crontab -l
* * * * * /disk1/archives/backup.website.cron
30 * * * * /disk1/archives/backup.database.cron

backup.website.cron выглядит как

tar -zcvf /disk1/archives/websites/`date +%Y-%m-%d_%I:%M:%S%p`.tar.gz /web

а backup.website.cron выглядит как

mysqldump --opt --all-databases | gzip > /disk1/archives/databases/`date +%Y-%m-%d_%I:%M:%S%p`.sql.gz

я где-то пропустил изменение разрешения?

Я запускаю правильные сценарии через crontab?

chmod +x /disk1/archives/backup.*.cron

Файл, в который вы загружаете crontab Команда не обязательно должна быть исполняемой, поскольку это не сценарий оболочки. Любые команды, которые вы вызываете как задания cron делать должен быть исполняемым.

Здесь есть еще одна странность. У crontab есть два немного разных синтаксиса. В одном есть 5 полей, которые определяют, когда команда должна быть выполнена, за которой следует сама команда; это формат, который crontab команда ожидает. Другой добавляет имя пользователя между 5 полями времени и командой. Это формат, используемый /etc/crontab, и по файлам в /etc/cron.* каталоги. (Это в Ubuntu 11.04; организация может немного отличаться в других системах.)

Вы сказали, что установили свой backup файл с crontab /disk/1/archives/backup, но backup файл, который вы нам показали, указывает root пользователь в каждой строке. Но твой crontab -l вывод не показывает root имя пользователя.

Сообщение об ошибке, которое вы получаете, соответствует crontab -l вывод (если файл, который вы передали crontab имел root имя пользователя, он попытается выполнить root как команду). Я предполагаю, что настоящий файл, в который вы загрузили crontab не имеет root поля.

man 5 crontab для получения информации о различиях между обычными и системными файлами cron.