запуск крона, но не выполнение сценария

Я устанавливаю crontab с crontab -e и проверенный это было сохранено с crontab -l:

*/10 6-8 * 1-11 1 /home/asarluhi/Documents/Scripts/monday.sh

Содержание monday.sh :

#!/bin/bash

ruby ~/Documents/Scripts/monday_task.rb >> ~/Documents/Scripts/monday

monday_task.rb рубиновый сценарий, какая сеть очищает некоторые данные, слишком долго для создания отчетов об этом здесь, но нет никаких ошибок в нем. monday простой пустой текстовый файл,
Сценарий хорошо работает при запуске от оболочки.

Я смотрел на var/log/syslog и найденный следующими записями:

Nov  7 07:55:01 SATELLITE-L50-A-161 CRON[6984]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Nov  7 08:00:01 SATELLITE-L50-A-161 CRON[7032]: pam_ecryptfs: Skipping automatic eCryptfs mount
Nov  7 08:00:01 SATELLITE-L50-A-161 CRON[7033]: (asarluhi) CMD (/home/asarluhi/Documents/Scripts/monday.sh)
Nov  7 08:00:01 SATELLITE-L50-A-161 CRON[7031]: (asarluhi) MAIL (mailed 1 byte of output; but got status 0x00ff, #012)
Nov  7 08:00:01 SATELLITE-L50-A-161 CRON[7038]: pam_ecryptfs: Skipping automatic eCryptfs unmount
Nov  7 08:00:43 SATELLITE-L50-A-161 anacron[6485]: Job `cron.daily' terminated
Nov  7 08:00:43 SATELLITE-L50-A-161 anacron[6485]: Normal exit (1 job run)
Nov  7 08:05:01 SATELLITE-L50-A-161 CRON[7112]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Nov  7 08:10:01 SATELLITE-L50-A-161 CRON[7141]: pam_ecryptfs: Skipping automatic eCryptfs mount
Nov  7 08:10:01 SATELLITE-L50-A-161 CRON[7142]: (asarluhi) CMD (/home/asarluhi/Documents/Scripts/monday.sh)
Nov  7 08:10:01 SATELLITE-L50-A-161 CRON[7140]: (asarluhi) MAIL (mailed 1 byte of output; but got status 0x00ff, #012)
Nov  7 08:10:01 SATELLITE-L50-A-161 CRON[7147]: pam_ecryptfs: Skipping automatic eCryptfs unmount
Nov  7 08:15:01 SATELLITE-L50-A-161 CRON[7206]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Nov  7 08:17:01 SATELLITE-L50-A-161 CRON[7221]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
...

Как можно заметить, задания крона запускаются в 8:00, а не в 6:00 как в crontable.
Сценарий запускается, но ничто не записано в ~/Documents/Scripts/monday
Я читал в Кроне, не запускающем скрипты предыдущий askubuntu вопрос, что STDERR должен закончиться в системной почте, но нет каталогов, названных в честь моего имени пользователя в /var/mail/, таким образом, я ничего не нашел.

3
задан 13 April 2017 в 15:23

1 ответ

Похоже, что исполняемый файл ruby находится не в пути cron, поэтому вам нужно использовать полный путь к исполняемому файлу.

Измените ваш monday.sh скрипт с:

#!/bin/bash
ruby ~/Documents/Scripts/monday_task.rb >> ~/Documents/Scripts/monday

на:

#!/bin/bash
/home/asarluhi/.rvm/rubies/ruby-2.3.1/bin/ruby /home/asarluhi/Documents/Scripts/monday_task.rb >> /home/asarluhi/Documents/Scripts/monday

Поскольку ваш syslog демонстрирует, что скрипт monday.sh выполняется вовремя, поэтому абсолютный путь -имя это единственный ответ. Согласно OP-комментарию ruby также должен иметь префикс с абсолютным путем.

6
ответ дан 1 December 2019 в 15:23

Другие вопросы по тегам:

Похожие вопросы: