Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Crontab - не пойму где ошибся

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Cyberserzh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
20 0 * * 2-7 root /t/script1
20 0 1-7 * 1 root /t/script2
 
и лог:
 
Nov  1 00:20:01 one /usr/sbin/cron[4755]: (root) CMD (/t/script2)
Nov  1 00:20:01 one /usr/sbin/cron[4754]: (root) CMD (/t/script1)
 
Почему сработал скрипт 2, ведь не понедельник же. Скрипт 1 работает без нареканий каждый день за исключением понедельников. Скрипт 2 добавил 3 дня назад, сработал только сегодня. Ось opensuse.

Всего записей: 15 | Зарегистр. 29-06-2011 | Отправлено: 14:09 01-11-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyberserzh
Цитата:
 не пойму где ошибся  
ошибка в том, что: 1 — не внимательно читали man 5 crontab и 2 — не воспользовались фильтром по форуму, что бы увидеть тему, где этот вопрос уже обсуждался.
 
Это нормальное поведение cron'а. Выдержка из man'а:
Цитата:
Note: The day of a command's execution can be specified by two fields — day of month, and day of week.   If  both  fields  are  restricted  (i.e., aren't *), the command will be run when either field matches the current time.  For example, ``30  4  1,15 * 5'' would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.


----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 14:16 01-11-2012 | Исправлено: Alukardd, 14:18 01-11-2012
Cyberserzh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Значит оно OR-ит... Спасибо, буду думать как в первый понедельник месяца скрипт выполнять, похоже кроном не получится.

Всего записей: 15 | Зарегистр. 29-06-2011 | Отправлено: 15:15 01-11-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyberserzh
Это делается cron+date+test, читайте man дальше...
Цитата:
# Run on every second Saturday of the month
0 4 8-14 * *    test $(date +%u) -eq 6 && echo "2nd Saturday"


----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 15:45 01-11-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
А зачем вы выкинули экранирующую черту? Она там не просто так.
Цитата:
# Run on every second Saturday of the month
0 4 8-14 * *    test $(date +\%u) -eq 6 && echo "2nd Saturday"
crontab(5)


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 18:24 01-11-2012 | Исправлено: ASE_DAG, 18:25 01-11-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
У-у какой глазастый!
Да, собственно, я ни чего и не выкидывал. У меня в Ubuntu 12.04 и Debian 6.0.6 в man 5 crontab нету там обратного слеша.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 18:33 01-11-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Забавно. А абзац
Цитата:
The  ``sixth''  field (the rest of the line) specifies the command to be run.  The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the crontab file.  Percent-signs (%) in the command, unless escaped with backslash (\), will  be changed into newline characters, and all data after the first % will be sent to the command as standard input. There is no way to split a single command line onto multiple lines, like the shell's trailing "\".
несколько ранее есть?

 
 
Добавлено:
А все-таки это у вас в мане баг, причем пофикшенный около года назад — посему в Сквизе он остался, это понятно. А вот почему в Убунте 12.04 он не исправлен — это вопрос.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 18:37 01-11-2012 | Исправлено: ASE_DAG, 18:54 01-11-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
А такое напутствие есть
Даже проверил Без экранированного % всё ломается)

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 18:58 01-11-2012
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Crontab - не пойму где ошибся


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru