Ru-Board.club
← Вернуться в раздел «UNIX»

» Crontab - не пойму где ошибся

Автор: Cyberserzh
Дата сообщения: 01.11.2012 13:09
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.
Автор: Alukardd
Дата сообщения: 01.11.2012 13:16
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.
Автор: Cyberserzh
Дата сообщения: 01.11.2012 14:15
Значит оно OR-ит... Спасибо, буду думать как в первый понедельник месяца скрипт выполнять, похоже кроном не получится.
Автор: Alukardd
Дата сообщения: 01.11.2012 14:45
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"
Автор: ASE_DAG
Дата сообщения: 01.11.2012 17:24
Alukardd
А зачем вы выкинули экранирующую черту? Она там не просто так.
Цитата:
# Run on every second Saturday of the month
0 4 8-14 * * test $(date +\%u) -eq 6 && echo "2nd Saturday"
crontab(5)
Автор: Alukardd
Дата сообщения: 01.11.2012 17:33
ASE_DAG
У-у какой глазастый!
Да, собственно, я ни чего и не выкидывал. У меня в Ubuntu 12.04 и Debian 6.0.6 в man 5 crontab нету там обратного слеша.
Автор: ASE_DAG
Дата сообщения: 01.11.2012 17:37
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 он не исправлен — это вопрос.
Автор: Alukardd
Дата сообщения: 01.11.2012 17:58
ASE_DAG
А такое напутствие есть
Даже проверил Без экранированного % всё ломается)

Страницы: 1

Предыдущая тема: Файловые системы Live CD    


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.