Пытался запустить 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.