Як встановити завдання cron для запуску сценарію оболонки?


44

Я поставив роботу з кроном:

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

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

Вміст myfile.sh є:

mkdir jh
cd jh 

Це може допомогти вам: help.ubuntu.com/community/CronHowto
PeppeDAlterio

2
якщо myfile.sh встановлено як виконуваний файл?
rogerdpack

Відповіді:


61

Це не нормально для скрипту, який задається як робота cron:

mkdir jh
cd jh 

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

Наприклад, ваш сценарій повинен виглядати так:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

Також /usr/bin/shце не правильний шлях sh. Правильний шлях є /bin/sh. Ви можете перевірити це за допомогою whereis shкоманди. І навіть незважаючи на це, ваша робота з крон повинна виглядати так:

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

Не забудьте зробити сценарій виконуваним:

chmod +x /home/lucky/myfile.sh

Чудово, врятувало мені життя :) Шахта працює чудово, як це. 0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2> & 1
Louwki

5

Шлях, по якому це, здається, створює папку /. Це тому, що crontabпотрібен повний шлях до папок та файлів у всіх файлах, які він виконує.

Отже, шлях у myfile.sh повинен бути

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shЦей рядок правильний, хоча ви повинні перевірити шлях, щоб побачити, чи існує sh / at / usr / bin / sh чи ні (використовуйте, which shщоб побачити шлях, де sh існує; мій був / bin / sh)

Якщо ви поспішаєте почати писати кронтаб, це посилання має досить непогані приклади

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.