У меня есть личное имя пользователя / пароль на машине unix с ограниченными правами. Когда мне нужно выполнить какие-то команды, я должен заменить пользователя, используя вс команду, то я выполняю ее как обычно.
Теперь мне нужно добавить задание cron, которое использует такие привилегированные команды, поэтому я добавил задание cron в crontab пользователя, которого я заменил, чтобы иметь доступ к этим командам.
Как ни странно, мне показалось, что эти команды по какой-то причине не запускаются как cronjob, хотя, когда я выполняю их непосредственно из оболочки (после su), они работают без проблем.
Почему это происходит? Почему эти команды не работают как часть cronjobs?
Они, вероятно, ожидают, что какая-то переменная среды будет установлена каким-то образом, но это не так, когда команда запускается напрямую от имени этого пользователя. Обычно $PATH
.
Я бы добавил выходной файл в вашу запись cron, чтобы вы могли понять, почему он не выполняется. то есть:
*/5 * * * * path_to_script.sh > /tmp/myscript.out 2>&1
Через 5 минут проверьте /tmp/myscript.out и посмотрите, на что он жалуется.
Конечно, это поможет узнать, есть ли у вас разрешение на создание крон.