LINUX.ORG.RU
решено ФорумAdmin

запуск скрипта sh через crontab

 ,


0

1

Добрый день, понимаю конечно, что вопрос может и дебильный, но никак не могу решить задачу по запуску скрипта через крон.

И так задача: нужно запускать каждое воскресенье в 0.00 скрипт restart_squid.sh в crontab из под root добавил следующие:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/


* 0 * * 0  /home/manage/restart_squid.sh

на скрипт сделал chmod +x вручную скрипт запускается, но через крон не работает.

решил проверить работает ли вообще крон сделал следующие

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/


1 * * * *  echo IT WORKS!

и ничего не происходит, по идеи должно ведь каждую минуту выводиться сообщение IT WORKS , но ничего не происходит.

Подскажите пожалуйста, в чем моя ошибка?

по идеи каждую минуту, должно ведь каждую минуту выводиться сообщение IT WORKS

Куда оно должно выводиться? Ну и не каждую минуту, а в первую минуту каждого часа.

kostik87 ★★★★★ ()
Ответ на: комментарий от Ninjatrasher

Что бы оно выводилось на экран консоли нужно вызывать команду в консоли или сделать перенаправление вывода в нужную консоль:

echo IT WORKS! > /dev/tty1
Это на первую консоль.

kostik87 ★★★★★ ()
Ответ на: комментарий от Ninjatrasher

каждую минуту будет так */1, на счет выводится тоже ошибаешся сделай например для теста запись вывода в какой нибуть файл. И еще к исполняемым файла путь нужно указывать полный, смотреть с помощью which echo например. чтоб тебе легче біло можешь воспользоватся http://www.crontab-generator.org/

CHIPOK ★★★ ()
Ответ на: комментарий от CHIPOK

каждую минуту будет так */1

Или просто так:

*

И еще к исполняемым файла путь нужно указывать полный,

Необязательно, но лучше указать.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

та да, я делаю так */1 чтоб себя не путать, как бы наглядно видно. Но тоже правильно. :)

CHIPOK ★★★ ()
Ответ на: комментарий от CHIPOK

ну чтоб в какой либо работающий шел віводилось нужно смотреть с помощью w или who

Чтобы в какой-либо «шел» выводилось нужно просто перенаправить вывод на соответствующий /dev/ttyN.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

не понял насчет «первой консоли» это как? сейчас вбил эту строчку получилось вот так

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/


*/1 * * * *  echo IT WORKS! > /dev/tty1

эффекта ноль, tty1 это рутовая консоль? а если консоль пользователя это будет tty2?

Ninjatrasher ()
Ответ на: комментарий от CHIPOK

Читать текст написанный неграмотно неприятно, к тому же сразу складывается не особо лестное мнение о человеке, который хотя бы не старается писать более правильно.

Даже помогать такому человеку на форуме, если он при оформлении шапки темы совершает много грамматических ошибок, не ставит знаки препинания, путает банальное «ться» и «тся», неправильно склоняет и ещё кичится этим, не хочется.

На форуме ваше лицо - это текст, который вы пишете.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от Ninjatrasher

в персональный, а лучше писать в /etc/crontab?

Попробуйте, только там после интервалов запуска нужно указать имя пользователя. Ну и попробуйте указать полный путь даже просто до echo.

/dev/tty1 - это первая консоль, на которую вы переключаетесь по ctrl+f1.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

извините меня конечно, я скорей всего туплю, но я не понимаю о какой консоли идет через, я к машине через putty подключаюсь, потом логинюсь через аккаунт manage, далее пишут su и уже правлю кронтаб

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/1 *    * * *   root   /bin/echo  IT WORKS! > /dev/tty1

ну все равно не работает

Ninjatrasher ()
Ответ на: комментарий от Ninjatrasher

сделай так

*/1 * * * * echo "Hello $USER" > /dev/pts/0

только /dev/pts/0 сделай свой, опять же смотри через w

CHIPOK ★★★ ()
Ответ на: комментарий от Ninjatrasher

зайди через путти введи команду w и покажи ее вывод

CHIPOK ★★★ ()
Ответ на: комментарий от CHIPOK

Debian 6.0.9

насчет cron, при выполнение ps aux | grep cron выдает следующие

root     10931  0.0  0.0  22400   920 ?        Ss   10:33   0:00 /usr/sbin/cron
root     11234  0.0  0.0   7548   848 pts/0    S+   11:28   0:00 grep cron

Ninjatrasher ()
Ответ на: комментарий от Ninjatrasher

извините меня конечно, я скорей всего туплю, но я не понимаю о какой консоли идет через, я к машине через putty подключаюсь

Обычная виртуальная консоль, подходишь к ПК, на котором установлен Linux, и у тебя в распоряжении 6 виртуальных консолей, по которым ты можешь переключаться по CTRL+F1...CTRL+F6. Ну в pytty смотри вывод who, ну и это не консоль, а ssh сессия.

kostik87 ★★★★★ ()
Ответ на: комментарий от Ninjatrasher

Запущен, напиши перенаправление вывода в файл.

/bin/echo  IT WORKS! >> /tmp/test

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

сделал who

root@vs-msk00-prx04:/home/manage# who
manage   pts/0        2014-08-01 10:54 (cnu0361w7w.ylrus.com)

подправил crontab

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/1 * * * *     root    /bin/echo  "Hello $USER" > /dev/pts/0

все заработало. спасибо за помощь. тему можно закрывать

Ninjatrasher ()
Ответ на: комментарий от kostik87

ну и это не консоль, а ssh сессия

какая разница

Ninjatrasher покажи наконец то вывод who или w

CHIPOK ★★★ ()
Ответ на: комментарий от Ninjatrasher

Ищи в шапке темы, возможно в режиме редактирования и сразу, там есть ссылка «отметить решено» или что-то в этом роде, давно тем не создавал.

kostik87 ★★★★★ ()
Ответ на: комментарий от Ninjatrasher

Кто это тебе посоветовал в /etc/crontab писать? Есть /etc/cron.weekly/, /etc/cron.d/, crontab -e

sdio ★★★★★ ()

Крон свои сообщения «выводит» по почте. MAILTO=root как бы на это намекает. Естественно, должна быть настроена локальная доставка почты.

akk ★★★★★ ()
Последнее исправление: akk (всего исправлений: 2)
Ответ на: комментарий от Ninjatrasher

Ну неужели так трудно прочитать man 5 crontab ?

день-недели *, 0-7 или имя дня (воскресенье - это 0 и 7)

akk ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.