64

Я хотел бы запускать задание cron в качестве конкретного пользователя на моей машине. Как я могу указать пользователя для задания cron для запуска ?.

Задания cron будут выполняться на сервере (на Ubuntu 10.0.4). «Пользователи» - это пользователи, которые были созданы специально для выполнения определенных задач на стороне сервера. Эти «пользователи» имеют следующие общие черты:

  • Невозможно войти в систему
  • Ограниченный доступ к определенным папкам / файлам

4 ответа4

75

Предполагая, что вы не можете просто войти и добавить его в crontab этого пользователя, поместите файл в /etc/cron.d . Он должен быть отформатирован как обычный cronjob, но с дополнительным полем. Перед выполнением команды и по истечении времени поставьте пользователя. Вы должны быть в состоянии найти примеры уже в вашей системе.

Пример:

#<timing>   <user> <command>
11 * * * *  root   /usr/lib/command
40

От имени пользователя root отредактируйте cron пользователя user1:

crontab -u user1 -e

Вы также можете начать свою команду с:

su user1 -c foo bar

Но часто сценарии сами уменьшают свой доступ при запуске от имени пользователя root.

0

Иногда вы можете захотеть, чтобы пользователь загрузил свою среду, особенно при использовании "rbenv", "nvm", вот так:

0 0 * * * source ~/.bash_profile && cd /opt/app/current && bundle exec ruby ...

(здесь источник команды source ~/.bash_profile загрузит вам среду Ruby или Node.

0

Я искал это в течение пары недель, и это, наконец, сработало ...

Создайте свой скрипт как user1

ssh user1@ipaddress
nano hourly-event.sh

введите какую-то команду

#!/bin/bash
echo "YAY it works" > /home/user1/yay.txt

сделать его исполняемым

chmod 755 hourly-event.sh

отредактируйте crontab для user1

sudo crontab -u user1 -e

поставить строку внизу, указывая на ваш сценарий (ы)

# m h  dom mon dow   command
*   *   *   *   *    bash ./hourly-event.sh

выход - сохранение изменений (при сохранении будет отображаться каталог /tmp ... все в порядке)

подождите минуты

откройте ваш вновь созданный yay.txt

nano /home/user1/yay.txt

Теперь у вас должно быть открыто нано окно с "YAY it works" в качестве первой и единственной строки, если в нижней части вашего нано окна написано New File ... хорошо .. я не знаю

Вы также можете проверить новую запись в crontab для user1 по адресу: /var /spool /cron /crontabs /user1

PEACE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .