Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > crontab suse10.1


Автор: bam00 8.1.2007, 17:13
Пишу в /etc/crontab:

Код

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/bin
MAILTO=root
01 04 * * * root /etc/cron.daily


На что получаю письмо cледующего содержания:

/bin/sh: /etc/cron.daily: is directory

Т.е., я так понимаю, cкрипт бы он выполнил, а что надо 
написать в crontab, чтобы выполнялось содержимое 
всей директории /etc/cron.daily

Автор: powerfox 8.1.2007, 17:16
Код

/etc/cron.daily/*

Автор: bam00 8.1.2007, 17:27
На это письмо с ошибкой не получил,
но ничего и не выполнилось

Автор: ZeeLax 8.1.2007, 17:47
bam00, в лог смотрели?

Автор: bam00 8.1.2007, 18:23
А где смотреть логи, в /var/log вроде нет ничего про cron

Автор: ZeeLax 8.1.2007, 18:35
/var/log/syslog
/var/log/messages

Автор: bam00 8.1.2007, 18:44
mesages.log

Jan  8 20:49:01 CEPBEP /usr/sbin/cron[4350]: (root) CMD (/etc/cron.daily/*)

чтобы это значило

Автор: powerfox 8.1.2007, 19:27
Наверное, что надо было sh /etc/cron.daily/*

Автор: bilbobagginz 8.1.2007, 19:28
ошибка в том, что "запуск" папки ничего не даёт.
попробуй запустить свою текущую папку:
Код

./.

получишь ту же ошибку.


у меня на SLES9 серванте в /etc/crontab
прописаны сл. строчки:
Код

-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
14 4  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
29 4  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
44 4  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly

первая - пытается запустить каждые 15 минут скрипт /usr/lib/cron/run-crons.
остальные - стирают специальные файлы, которые создаются первой строкой.
Эти строки появились в файле при установке системы.
посмотри есть ли у тебя такой скрипт, нет ли у тебя резервной копии этого файла.
и ответь как получилось, что у тебя нет этих строк ?




Автор: bam00 8.1.2007, 19:46
Да, было также, но так не устраивает.

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

Этот же скрипт, запускает cron.daily не в одно и то же постоянное
время, а оно (время запуска cron.daily) меняется на время последней 
перезагрузки компа.


Автор: bam00 8.1.2007, 20:02
to powerfox

/var/log/messages

Jan  8 23:05:01 CEPBEP /usr/sbin/cron[4646]: (root) CMD (root sh /etc/cron.daily/*)
Jan  8 23:05:01 CEPBEP /usr/sbin/cron[4645]: (root) CMD (sh /etc/cron.daily/*)

Автор: bilbobagginz 8.1.2007, 21:08
Цитата

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

есть программа at.

Автор: naprimer_ivan_petrov 8.1.2007, 22:36
debianutils: run-parts

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

for i in $(ls <где задания лежат>) ; do sh <там где задания лежат>$i ; done

Автор: bilbobagginz 8.1.2007, 23:22
naprimer_ivan_petrov, SuSE в этом смысле имеет свои утилиты, надо ими и пользоваться.. а то иногда бывает такое... ( какой нить файлик временный забудешь создать, и придётся ёжиков рожать )

Автор: ZeeLax 9.1.2007, 07:09
Цитата(bam00 @  8.1.2007,  22:46 Найти цитируемый пост)
Мне надо чтобы в ежедневно всегда в одно и то же время

Код

мин час  * * *     root /usr/local/bin/blablabla

?

Автор: bam00 9.1.2007, 11:06
ZeeLax

Мне кажется, что каталоги cron.daily и т.п. задумывались,
чтобы положил туда, и ни о чем голова не болит.
В RedHat9 по крайней мере так и было (непонятно,
чем руководствовались suse-исты, когда это переделывали).

А Вы предлагаете универсальное средство заменить
на частное решение: прописывать в crontab каждый файл. 

Ну, что ж, хоть какое-нибудь решение, оно хотя бы решение.

Всем спасибо

Автор: bilbobagginz 9.1.2007, 11:21
Не прими мои комменты как "защиту" SUSE. но не нужно свои незнания поддерживать сомнительной некомпетентностью других ( т.е. инженеров Novell/SUSE )
Цитата(bam00 @ 9.1.2007 @  11:06)

Мне кажется, что каталоги cron.daily и т.п. задумывались,
чтобы положил туда, и ни о чем голова не болит.
В RedHat9 по крайней мере так и было (непонятно,
чем руководствовались suse-исты, когда это переделывали).


Надеюсь понимаешь, что если бы не ковырялся в /etc/crontab,
то так всё и было бы. smile

Добавлено @ 11:28 
Цитата

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


в принципе, на основе системной таблицы крон по-умолчанию, твой скрипт будет запускаться вместе со всеми другими системными сценариями/программами в /etc/cron.daily ( в зависимости от порядка запуска - алфавитного порядка ). идентично Ред-Хапу.
А если тебе нужно запускать твою или (только твою) программу в другой час, то редактировать нужно либо личную таблицу пользователя root ( crontab -e) , либо в таблице /etc/crontab
но писать нужно отдельную строку

Посмотри FAQ.

пока.

Автор: bam00 9.1.2007, 13:09
Мне кажется, что каталоги cron.daily и т.п. задумывались,
чтобы положил туда, и ни о чем голова не болит.
В RedHat9 по крайней мере так и было (непонятно,
чем руководствовались suse-исты, когда это переделывали,
а именно, то что время запуска cron.daily 
не постоянно. Оно слетает на время последней перегрузки,
что не очень удобно с моей личной некомпетентной точки 
зрения).





Автор: nickless 9.1.2007, 19:22
Цитата(bam00 @ 9.1.2007,  12:09)
время запуска cron.daily 
не постоянно. Оно слетает на время последней перегрузки

Потому, что у тебя изменён crontab, и вряд ли это сделано намерянно кем-то из SuSE, чтобы тебе насолить.

На предыдущей странице bilbobagginz запостил crontab, скопируй его себе и будет тебе счастье.

Автор: powerfox 9.1.2007, 21:26
bam00, в SUSE надо любые изменения надо делать через YAST. Там есть редактор конфигов и всякая фигня для настройки демонов. Прикол в том, что в целях повышения безопасности, все изменения, сделанные вручную, аннулируются после перезагрузки.

Автор: bilbobagginz 9.1.2007, 22:24
Цитата(bam00)

Мне кажется, что каталоги cron.daily и т.п. задумывались,
чтобы положил туда, и ни о чем голова не болит.
В RedHat9 по крайней мере так и было (непонятно,
чем руководствовались suse-исты, когда это переделывали,
а именно, то что время запуска cron.daily 
не постоянно. Оно слетает на время последней перегрузки,
что не очень удобно с моей личной некомпетентной точки 
зрения).

время запуска первого скрипта в /etc/cron.daily на SUSE  постоянно.
Если (напр.) первый скрипт начинает запускаться в 17:00, и бежит 10 минут, то, следовательно следующий скрипт запустится в 17:10. Отсюда и танцуем: даём какие-то пронумерованные названия скриптам в этой папке, и ставим первыми те, которые должны бежать ближе к 17:00. Если и это не устраивает - редактируем в ручную свой крон-таб. Если тебе понятнее чтение кода, посмотри какой скрипт мой кронтаб пытается запустить. открой скрипт в редакторе, и посмотри что он делает.
А вообще крон никогда не обязывался запускать программы точно в назначенное время.
Также, если очень важный сценарий должен запускаться в 18:00, но в 17:55 компьютер выключили, то скрипт не запустился.  Если этот скрипт можно запустить позже - для этого есть anacron.

мне всё-таки кажется, что это неоправданное высокомерие нужно потушить чтением инструкции по эксплуатации данной системы. многие, кажущиеся странными на первый взгляд вещи вдруг встанут на свои места. Вам бы РТФМ не мешает сделать, батенька.
а для опровержения своих слов, сделай элементарный скрипт, запускающий команду date, и запиши его первым в /etc/cron.daily (т.е. дай ему название напр. aaadate) , и удивишься, но время будет очень точно совпадать с тем, на которое всё прописано.

Цитата(powerfox)

bam00, в SUSE надо любые изменения надо делать через YAST. Там есть редактор конфигов и всякая фигня для настройки демонов. Прикол в том, что в целях повышения безопасности, все изменения, сделанные вручную, аннулируются после перезагрузки.


нужно знать какие изменения сохраняются, и какие файлы нужно менять.

в SUSE есть несколько странностей, но контроль над системой - не один из них.
Повторяюсь: SUSE - очень грамотно собранный дистрибутив, некий гибрид между Слэквером и РедХатом.

Автор: powerfox 10.1.2007, 00:44
Цитата(bilbobagginz @  9.1.2007,  23:24 Найти цитируемый пост)
нужно знать какие изменения сохраняются, и какие файлы нужно менять.

Как я понял, система бекапит все конфиги, доступные в редакторе конфигов YAST. + некоторые важные с точки зрения безопасности (настройки апча и прочее). Такие же файлы, как fstab или /grub/menu.lst можно править вручную.

Автор: bilbobagginz 10.1.2007, 00:54
Цитата

система бекапит все конфиги

да, но не все она реставрирует.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)