Cron echo не работает

Crontab — simple echo not running

I’ve got such situation: I want to schedule a job with crontab on a linux server. I’m not super-user, so I’m editing (with crontab -l, editor vim) only my crontab file. For testing, I put there:

And the job is not running. Is the restart of the server needed? Or maybe some administrator move?

3 Answers 3

May be it is, cron jobs will run in their own shell. So you can’t expect to see asdf on your console.

What you should try is

Next check the file by doing a tail:

And if it’s not, check if the cron daemon itself is running or is down:

For me * * * * * /bin/echo text > file is not working. I don’t know why, previleges and everything is set. (This command is running normaly when I execute it as the particular root user, just to clarify this.) This can be solved by injecting the path PATH=$PATH:/bin in my example.

Instead * * * * * echo text > file is working fine, probably path issue.

If you want to echo something on your shell you could use wall:

These two lines basically do the same, just choose your favorite.
Btw, be aware that wall will send your message to every user currently connected.

Not the answer you’re looking for? Browse other questions tagged linux cron scheduling or ask your own question.

Linked

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.19.40496

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Как передать задачу в cron из скрипта?

Здравствуйте!
Задача такая. Есть определенный скрипт.
Одной из его задач является добавление в cron задания
Перед написанием этой строки решил потестить и выявил следующее.
Если задачу в cron добавить таким образом, то затираются предыдущие, что в принципе и логично, но задача выполняется по указанному промежутку (каждую минуту):

Если же добавлять таким образом, то задача добавляется в конец файла с задачами, но. не выполняется вообще:

Подскажите, где я делаю не так?
Во втором варианте после добавления пробовал перезапустить cron, но не работает(

  • Вопрос задан более года назад
  • 1614 просмотров

Никогда не задумывались, почему в документации сказано — не правьте напрямую юзерские файлы кронтаба?
Подскажу — если за /etc/crontab демон следит постоянно и при его изменении перечитывает, то за юзерскими файлами никто не следит. И команду на их перечитывание дает та самая команда crontab -e
А Ivan Yakushenko вам уже правильный вариант дал.

Еще есть /etc/cron.d/ каталог. Любой файл, добавленный туда — рассматривается как дополнительное расписание. Это было сделано специально под пакетные менеджеры, чтобы не править единственный /etc/crontab при установке\добавлении пакетов.

Если ты так добавляешь задание и при этом до этого момента ни разу и никогда задание в cron не добавлялось, то файлик этот будет просто с оной записью, но без атрибутов и он не выполняется в последствии планировщиком. Т.е. файл мёртвый!

Правильно надо так:

Почему с sudo?
Таким образом задание пишется в /var/spool/cron/crontabs/root
А если без sudo, то в /var/spool/cron/crontabs/твоё_имя_пользователя_в_системе

А если уже добавлялось, или, вручную, через редактор командой sudo crontab -e, или, как выше я описываю, то после первого такого добавления уже можно добавлять задание командой правильно так:

Но в этом случае обязательно перезагрузить планировщик командной:
sudo /etc/init.d/cron restart
Иначе задание не будет работать.

Или добавляй всё руками через редактор:
sudo crontab -e
Сохраняешь, выходишь и всё сразу готово к употреблению!

Источник

Cron echo не работает

/var/spool/cron/crontabs/root :
* * * * * root echo test.

Крон запущен.
Я работаю под рутом.
Каждую мин. должно на консоль выводить test.
Не работает. ((.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

  • Проблема с cron ом, user, 19:18 , 28-Сен-06, (1)
    • Проблема с cron ом, user, 19:46 , 28-Сен-06, (2)
  • Проблема с cron ом, lux.place, 08:40 , 29-Сен-06, (3)
    • Проблема с cron ом, BuTaJIuK, 11:23 , 29-Сен-06, (4)
    • Проблема с cron ом, BuTaJIuK, 11:29 , 29-Сен-06, (5)
      • Проблема с cron ом, los, 11:51 , 29-Сен-06, (6)
      • Проблема с cron ом, hex, 12:34 , 29-Сен-06, (7)
        • Проблема с cron ом, BuTaJIuK, 18:54 , 29-Сен-06, (8)
          • Проблема с cron ом, user, 20:18 , 29-Сен-06, (9)
            • Проблема с cron ом, hex, 03:13 , 30-Сен-06, ( 10 )
          • Проблема с cron ом, hex, 03:16 , 30-Сен-06, ( 11 )
        • Проблема с cron ом, yankee, 04:23 , 12-Авг-08, ( 12 )
          • Проблема с cron ом, lux.place, 11:10 , 12-Авг-08, ( 13 )

Сообщения по теме [Сортировка по времени | RSS]

>Крон не выполняет задач.
>
>/var/spool/cron/crontabs/root :
>* * * * * root echo test.
>
>Крон запущен.
>Я работаю под рутом.
>Каждую мин. должно на консоль выводить test.
>Не работает. ((.

*/1 * * * * root echo test

1. «Проблема с cron ом»
Сообщение от user (??) on 28-Сен-06, 19:18
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. «Проблема с cron ом»
Сообщение от user (??) on 28-Сен-06, 19:46

>>Крон не выполняет задач.
>>
>>/var/spool/cron/crontabs/root :
>>* * * * * root echo test.
>>
>>Крон запущен.
>>Я работаю под рутом.
>>Каждую мин. должно на консоль выводить test.
>>Не работает. ((.
>
А этот файл крона вообще тот что основной или тот что отдельный?
Если отдельный то для него не нужно указывать поле пользователя
если это файл крона для рута, то зачем ещё раз указывать что это нужно запускать из под рута?
Попробуйте так
* * * * * echo test

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. «Проблема с cron ом»
Сообщение от lux.place (ok) on 29-Сен-06, 08:40

Чего?
Во первых, как правил файл? Если ручками, то перезапускал ли crond?
Во вторых, с чего ты взял, что вывод пойдёт на консоль? В зависимости от настроек либо в мыло, либо в никуда он уйдёт.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. «Проблема с cron ом»
Сообщение от BuTaJIuK (ok) on 29-Сен-06, 11:23

>Чего?
>Во первых, как правил файл? Если ручками, то перезапускал ли crond?
>Во вторых, с чего ты взял, что вывод пойдёт на консоль? В
>зависимости от настроек либо в мыло, либо в никуда он уйдёт.
>

Во первых — crontab -e
крону делал cron force-reload
Во вторых я делал и скрипт, кот. при запуске отрабатывает, но в кроне нет.
Т.е. проблема в том что крон не выполняет то что в crontab записано.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. «Проблема с cron ом»
Сообщение от BuTaJIuK (ok) on 29-Сен-06, 11:29

>Чего?
>Во первых, как правил файл? Если ручками, то перезапускал ли crond?
>Во вторых, с чего ты взял, что вывод пойдёт на консоль? В
>зависимости от настроек либо в мыло, либо в никуда он уйдёт.
>

Правил — crontab -e
крон перезапускал
Я кроме ехо делал выполения скрипта кот. если запускаешь ручками отрабатывает красиво, а если через крон, то скрипт не запускается .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. «Проблема с cron ом»
Сообщение от los on 29-Сен-06, 11:51

>>Чего?
>>Во первых, как правил файл? Если ручками, то перезапускал ли crond?
>>Во вторых, с чего ты взял, что вывод пойдёт на консоль? В
>>зависимости от настроек либо в мыло, либо в никуда он уйдёт.
>>
>
>
>Правил — crontab -e
>крон перезапускал
>Я кроме ехо делал выполения скрипта кот. если запускаешь ручками отрабатывает красиво,
>а если через крон, то скрипт не запускается .

Смотри свою локальную почту. Там и будет вывод всего, что могло выводиться скриптом через cron.
В мане четко сказано
When executing commands, any output
is mailed to the owner of the crontab (or to the user named in the MAILTO
environment variable in the crontab, if such exists).
причем в первых же строчках.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. «Проблема с cron ом»
Сообщение от hex (??) on 29-Сен-06, 12:34

>Правил — crontab -e
>крон перезапускал
>Я кроме ехо делал выполения скрипта кот. если запускаешь ручками отрабатывает красиво,
>а если через крон, то скрипт не запускается .
После crontab -e перезапускать демона не обязательно.
Скрипт может не отработать из-за разницы в переменных окружения (типичная проблема — у него другой PATH и cron просто не находит скрипт).
Попробуй
* * * * * touch /tmp/i_am_alive
Если файл создался через минуту — копайся в своих скрипах. Иначе — будет иначе 🙂

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. «Проблема с cron ом»
Сообщение от BuTaJIuK (ok) on 29-Сен-06, 18:54

>>Правил — crontab -e
>>крон перезапускал
>>Я кроме ехо делал выполения скрипта кот. если запускаешь ручками отрабатывает красиво,
>>а если через крон, то скрипт не запускается .
>После crontab -e перезапускать демона не обязательно.
>Скрипт может не отработать из-за разницы в переменных окружения (типичная проблема —
>у него другой PATH и cron просто не находит скрипт).
>Попробуй
>* * * * * touch /tmp/i_am_alive
>Если файл создался через минуту — копайся в своих скрипах. Иначе —
>будет иначе 🙂

Странно нашел конфиг crontab-а в /etc и поправил его, и заработало )). Но crontab -e из командной строки правит конфиг кот. находится по пути : /var/spool/cron/crontab. В чем тут загвоздка ? Не понятно.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. «Проблема с cron ом»
Сообщение от user (??) on 29-Сен-06, 20:18

>>>Правил — crontab -e
>>>крон перезапускал
>>>Я кроме ехо делал выполения скрипта кот. если запускаешь ручками отрабатывает красиво,
>>>а если через крон, то скрипт не запускается .
>>После crontab -e перезапускать демона не обязательно.
>>Скрипт может не отработать из-за разницы в переменных окружения (типичная проблема —
>>у него другой PATH и cron просто не находит скрипт).
>>Попробуй
>>* * * * * touch /tmp/i_am_alive
>>Если файл создался через минуту — копайся в своих скрипах. Иначе —
>>будет иначе 🙂
>
>Странно нашел конфиг crontab-а в /etc и поправил его, и заработало )).
>Но crontab -e из командной строки правит конфиг кот. находится по
>пути : /var/spool/cron/crontab. В чем тут загвоздка ? Не понятно.

Загвоздка тут именно в том что я спрашивал. Возможно неправильно задал вопрос.
Поясню что я имел ввиду.
Есть основной файл крона — crontab , как правило он находится в /etc
и есть файлы которые создаются для каждого пользователя отдельно. На фре например эти файлы для каждого пользователя свой лежат в директории /var/cron/tabs/имя_пользователя_создавшего_кронтаб. (если память не подводит)

То что ты попроавил файл в папке /етс есть не совсем правильно. В мане написано что не рекомендуется его трогать и как раз для этого дают возможность делать свой файл крона.

Различие между эти файлами состоит в том что в файле /etc/crontab выставляется имя пользователя с правами которого будет запускаться скрипт/программа/т.д.

А в файлах которые создаются для отдельного пользователя необходимости указывать имя пользователся нет, так как этот файл уже создаётся под конкретного пользователя.

По-поводу того что нужно правильно задать переменную PATH это точно, были грабли. Тут чтобы избежать ошибки стоит скопировать содержимое переменной PATH из /etc/crontab ну и добавить своего по вкусу 🙂 , собсно ту директорию откуда ты хочешь запускать какие-то скрипты(допустим домашний бин /home/user/bin).
По-поводу того что нужно обязательно редактировать свой файл крона через crontab -e не соответсвует истине . хотя думаю что создать его всё же стоит именно таким образом, хотя опять же это простой текстовый файл, главное правильно оформить.

Рестарт думаю стоит сделать, хотя по идее крон каждую минуту перечитывает свои файлы конфигурации.

А вообще man твой лучший друг и советчик 🙂 , так что man cron и man crontab.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10 . «Проблема с cron ом»
Сообщение от hex (??) on 30-Сен-06, 03:13

cron не должен перечитывать конфиги каждую минуту. Но обязан перечитывать конфиг, отредактированный через ‘crontab -e’. Поэтому стоит редактировать так, а перезапускать crond вообще не надо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11 . «Проблема с cron ом»
Сообщение от hex (??) on 30-Сен-06, 03:16

Загвозда в том, что у /etc/crontab и у /var/spool/cron/crontabs/* разные форматы файлов. И скорее всего ты их оформлял неправильно. Я тебе уже приводил примеры правильных строк.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12 . «Проблема с cron ом»
Сообщение от yankee (??) on 12-Авг-08, 04:23

>[оверквотинг удален]
>>крон перезапускал
>>Я кроме ехо делал выполения скрипта кот. если запускаешь ручками отрабатывает красиво,
>>а если через крон, то скрипт не запускается .
>После crontab -e перезапускать демона не обязательно.
>Скрипт может не отработать из-за разницы в переменных окружения (типичная проблема —
>у него другой PATH и cron просто не находит скрипт).
>Попробуй
>* * * * * touch /tmp/i_am_alive
>Если файл создался через минуту — копайся в своих скрипах. Иначе —
>будет иначе 🙂

если получится — с момента «Иначе» — поподробней.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13 . «Проблема с cron ом»
Сообщение от lux.place (ok) on 12-Авг-08, 11:10

>[оверквотинг удален]
>>>а если через крон, то скрипт не запускается .
>>После crontab -e перезапускать демона не обязательно.
>>Скрипт может не отработать из-за разницы в переменных окружения (типичная проблема —
>>у него другой PATH и cron просто не находит скрипт).
>>Попробуй
>>* * * * * touch /tmp/i_am_alive
>>Если файл создался через минуту — копайся в своих скрипах. Иначе —
>>будет иначе 🙂
>
>если получится — с момента «Иначе» — поподробней.

Иначе — копаться.
1. Сначала убедиться, что крон запущен.
2. Потом убедиться, что он работает от root’а.
3. Затем разгрести маны, файлы /etc/cron.allow и /etc/cron.deny

Я в rhel4 натыкался на странные забавы. Крон от пользователей начинал работать только через несколько перезапусков сервиса. Но после этого уже работал как часы.

Источник

Читайте также:  Как настроить графику ворлд оф танкс
Оцените статью