Я пытаюсь написать сценарий bash, который будет запускаться ежедневным заданием cron от имени определенного пользователя («уведомитель»).
Запись в crontab и скрипт bash
crontab -u notifier -e 53 09 * * * /edx/app/notifier/not.sh
Содержимое скрипта, который я разместил в домашнем каталоге моего пользователя («notifier»), выглядит следующим образом:
#!/bin/bash SHELL=/bin/bash PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin cd "$(dirname "$0")" DATE=`date +%Y-%m-%d -d "tomorrow"` /edx/app/notifier/virtualenvs/notifier/bin/python /edx/app/notifier/src/manage.py forums_digest --to_datetime=$DATE
Однако это не работает должным образом.
Ниже приведены отдельные шаги, которые я успешно выполняю вручную.
sudo -H -u notifier bash cd DATE=`date +%Y-%m-%d -d "tomorrow"` /edx/app/notifier/virtualenvs/notifier/bin/python /edx/app/notifier/src/manage.py forums_digest --to_datetime=$DATE
Как я могу запустить дайджест уведомлений как задание cron?
/edx/app
является домашним каталогом этого пользователя? Вы пытаетесь использовать virtualenv без запуска его сценарияactivate
(или вы используете нестандартный venv, который не требует его)? И наоборот, работают ли ваши ручные шаги после того, как выdeactivate
(или что-то еще)? - person tripleee   schedule 16.07.2018sudo
, некоторые настройки из него все еще могли быть активны. Еще раз, пожалуйста, уточните свой вопрос, добавив недостающие детали; и если вы неactivate
env, когда должны, вы против этого как какой-то принцип, или вам просто не приходило в голову попытатьсяactivate
внутри скрипта? - person tripleee   schedule 16.07.2018date +%Y-%m-%d -d "tomorrow"
/edx/app/notifier/virtualenvs/notifier/bin/python manage.py forums_digest --to_datetime=$DATE 'код' - person n00bFox   schedule 17.07.2018