Как настроить задание cron для запуска сценария оболочки?

Я установил задание cron:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

Основная проблема заключается в том, что во время расписания появляется ошибка: "почта отправлена в /var/spool/mail/lucky".

Содержимое моего файла.sh - это:

mkdir jhcd jh 

Это недопустимо для скрипта, который настроен как задание cron:

mkdir jhcd jh 

Вы должны указать полный путь, где jh каталог должен быть создан. Кроме того, в этом пути у вас должно быть разрешение на создание новых файлов / каталогов.

Например, ваш сценарий должен выглядеть следующим образом:

#!/bin/shmkdir /home/lucky/jhcd /home/lucky/jh

Также /usr/bin/sh это не правильный путь для sh. Правильный путь - это /bin/sh. Вы можете проверить это с помощью whereis sh команда. И даже в этом случае ваша работа cron должна выглядеть следующим образом:

20 * * * * /home/lucky/myfile.sh

Не забудьте сделать скрипт исполняемым:

chmod +x /home/lucky/myfile.sh

Путь, по которому, по-видимому, создается папка, таков / . Это происходит потому, что crontab требует полный путь к папке и файлам во всех файлах , которые он выполняет .

Итак, путь в myfile.sh должен быть

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.sh Эта строка верна, хотя вы должны проверить путь, чтобы увидеть, существует ли sh в /usr /bin /sh или нет (используйте which sh чтобы увидеть путь, где существует sh; мой был /bin/sh)

Если вы спешите начать писать crontab, по этой ссылке есть довольно хорошие примеры

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

если мой файл.sh установлен как исполняемый файл?

Это может помочь вам: CronHowto - Community Help Wiki