2015-11-06 2 views
0

Я пытаюсь запустить скрипт через crontab, который требуется для запуска в качестве пользователя oracle. Я попытался создать crontab для этого пользователя: su -u oracle crontab -e, который позволил мне создать его. Я отредактировал файл для запуска скрипта perl:Создание crontab для пользователя, не являющегося пользователем root

0 5 * * * /usr/bin/perl /path/master.pl > /tmp/debug.log 

Однако, когда время проходит, ничего не запускается. Является ли это правильным способом создания crontab для пользователя без полномочий root? Также файл master.pl вызывает несколько сценариев, которые также должны выполняться как пользователь oracle, если это имеет значение.

+0

Зависит от платформы - проверить /etc/cron.allow и /etc/cron.deny – Sobrique

+0

В любое время у вас есть проблемы с хрон, первым делом сделайте проверку журнала cron, чтобы убедиться, что 1) cronjob действительно работает и 2) ошибок не было. В моей системе журнал находится в/var/log/cron. – ThisSuitIsBlackNot

+0

@Sobrique я добавил oracle cron.allow файл – user3723302

ответ

2

Использовать crontab-u вариант. man page говорит:

-u Дописывает имя пользователя, кронтаб должен быть изменен. Если этот параметр не используется, crontab проверяет «ваш» crontab, i.e, crontab человека, выполняющего команду. Примечание , что su (8) может путать crontab, поэтому при выполнении команд в su (8) вы всегда должны использовать опцию -u. Если нет crontab для определенного пользователя, он создается для него при первом использовании команды crontab -u под его именем пользователя .

Так правильная команда:

sudo crontab -e -u oracle 
+2

В качестве альтернативы вы можете добавить задание в '/ etc/crontab', в котором есть дополнительное поле, в котором указывается, какой пользователь должен выполнять задание. – ikegami

Смежные вопросы