Я изучаю, как использовать crontab и в том преследовании, что я хотел сделать, был распечатать что-то простое в оболочке. Таким образом, я сделал crontab -e
и введенный следующее
* * * * * bash /etc/test.sh
test.sh
echo $NODE_ENV
Теперь то, что я ожидаю, является cronjob для печати значения NODE_ENV
всех минуту к оболочке, которую это не делает. Почему это не печатает это? Разве это не должно печатать, или я делаю что-то не так?
Некоторые вещи, которые я уже попробовал.
$ ps aux | grep crond
ubuntu 15438 0.0 0.0 11284 936 pts/1 S+ 09:37 0:00 grep --color=auto crond
/var/log
не имеет файла cron.log, не создают так журналирования того, если мое задание на самом деле работало.
Я выполняю эту команду в экземпляре Amazon EC2 в человечности 16.04, больше производите Вас, должны по возможности сообщить мне.
Крон не выполняет команды с помощью терминала, который Вы открыли. Это выполняет задания в фоновом режиме и сохраняет вывод, который будет отправлен по почте Вам (если у Вас есть доставка почты установки).
, Если Вы хотите просмотреть вывод cronjob, самый простой путь состоит в том, чтобы перенаправить вывод:
* * * * * bash /etc/test.sh >> /some/output/file 2>&1
И затем смотрят на тот файл в терминале, который Вы открыли:
tail -f /some/other/file
На Ubuntu 16.04 и выше, с помощью systemd, для просмотра журналов крона сделайте:
journalctl -u cron
И cron
демон всего cron
, не crond
:
$ systemctl status cron
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-01-12 19:02:04 IST; 1 weeks 1 days ago
Docs: man:cron(8)
Main PID: 1022 (cron)
Tasks: 1
Memory: 8.6M
CPU: 24.967s
CGroup: /system.slice/cron.service
└─1022 /usr/sbin/cron -f