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

Взбесился cron


1

1

Здравствуйте, уважаемые

С кроном какой-то шайтан, а может я на старости лет ебанулся

Вот запись:

0 1 2-31 * 6 /скриптец

Я жду, что он будет выполнятся раз в неделю (в час ночи, со 2 по 31-е число)

Хер там! исполняется КАЖДЫЙ ДЕНЬ что за херня? у меня уже кроме мата слов не осталось.

★★

Что скажете и что посоветуете

Alphaer ★★
() автор топика

Каждый месяц со 2го по 31е и по субботам выполнять /скриптец в час ночи.

power
()

Надо читать маны:

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 cur‐ rent 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.

Chumka ★★★
()

исключить запуск первого числа

55 0 1 * * touch /var/tmp/donotrun.scriptec
0 1 * * 6 [ -f /var/tmp/donotrun.scriptec ] || /скриптец
5 1 1 * * rm /var/tmp/donotrun.scriptec

вот такое знатное извращение, зато сам /скриптец менять не надо

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

1. % надо экранировать

зачем? именно в кроне это надо?

2. в рамках возможностей крон'а менее гибко

зато коротко, ясно и хард не дёргает

af5 ★★★★★
()

может я на старости лет ебанулся

Ну, если 13 лет - это старость, тогда да.

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

Да, спасибо. Во бля, недочитанный ман в свое время такие чудеса с людями делает.

если 13 лет это старость

Да, малыш. Алкоголизм, наркотики, рок-н ролл и бляди убыстряют процесс .... Не повтори моей ошибки

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

А вообще такая нотация удивительна, потому наверное в голове не отложилась.

От того, что я ввел какой-либо день он будет запускать И в день недели который я поставлю. То есть логически складывается (или) в то время как остальные поля - логическое И Если я захочу каждую пятницу запускать то так и напишу

x y * * 5 /bla

А если я уже напишу якобы то же самое вместо звездочки (обозначающей все дни) тупо все дни

x y 1-31 * 5 /bla

то он так и будет запускать во все дни,а не по пятницам Такое придумать можно только по изрядной укурке.

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

Это всего лишь следствие врождённого дебилизма.

сочувствую, тогда мой совет тебе не поможет.

не отчаивайся, закажи себе эвтаназию. На кладбище еще полно места для таких как ты.

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

а если надо исключить еще запуск 13го и 27го?

элементарно :)

0 1 * * 6 a=$[`date +%d`] && test `bc<<<"($a-1)*($a-13)*($a-17)"` -ne 0 && скриптец

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

Заодно начинающие админы поучатся решать кубические уравнения

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

В принципе, можно скрыть ненужные математические подробности

0 1 * * 6 `base64 -d <<<YT0kW2BkYXRlICslZGBdICYmIHRlc3QgYmM8PDwiJGFeMy0zMSokYV4yKzI1MSokYS0yMjEiYCAtbmUgMCAmJiBzY3JpcHRlYw==`

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

В принципе, можно скрыть ненужные математические подробности

Ну вот, совсем другое дело.
Можите же, если захочите

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

Весело тут у вас ))

Но нужно заботиться о следующем админе, который должен понять предыдущего.
Всё-таки первый вариант был изящнее:

0 1 * * 6 [ `date +%d` -gt 1 ] && /root/scriptec.sh

На случай нескольких дат предлагаю:

0 1 2-12,14-26,28-31 * * [ `date +%w` -eq 6 ] && /root/scriptec.sh

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