nixp.ru v3.0

25 мая 2017,
четверг,
11:38:30 MSK

DevOps с компанией «Флант»
Anarchist написал 8 октября 2008 года в 15:03 (478 просмотров) Ведет себя как мужчина; открыл 258 тем в форуме, оставил 4097 комментариев на сайте.

Что нужно писать (и возможно ли вообще такое) в crontab, чтобы скрипт выполнялся в конкретный день конкретной недели (например — третий вторник сентября)?

Curu3MyHg
Anarchist
Что нужно писать (и возможно ли вообще такое) в crontab, чтобы скрипт выполнялся в конкретный день конкретной недели (например — третий вторник сентября)?

Если поверить в то, что третий одинаковый день недели за месяц — это всегда с 15 по 21 числа месяца, можно попробовать собрать строчку:

1       0       15-21       9       2    root   /bin/do_smth

Сам ни разу не проверял.

Anarchist
Curu3MyHg
Если поверить в то, что третий одинаковый день недели за месяц — это всегда с 15 по 21 числа месяца, можно попробовать собрать строчку:

1       0       15-21       9       2    root   /bin/do_smth

Сам ни разу не проверял.

Изящно и оригинально.

Должно работать.

Проверю, поставлю и отпишусь :)

Anarchist

Увы, работает не так, как хотелось бы :(

Интересно почему?…

Надо будет поразбираться.

Curu3MyHg
Anarchist
Увы, работает не так, как хотелось бы :(

Какое подробное описание проблемы..

Curu3MyHg
Anarchist
Увы, работает не так, как хотелось бы :(

Подтверждаю, для случая vixie-cron не работает.

строчка

1       8       8-14    10      7       user      /bin/do_smth

отрабатывается не только по воскресеньям..

Curu3MyHg

Мда..

$ man 5 crontab
...............
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 (ie, 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.
...............
Curu3MyHg

Обсуждение данной темы с несколькими костыльными решениями..

Например,

Maybe something like this would work:

0 0 15-21 * * (date | grep Fri > /dev/null) && command


и

Here is one that I have that runs the 3rd Friday of every month:

—————————————————————-

1 18 15-21 * * [ `date +\%w` -eq 5 ] &&

/usr/local/bin/Atlas_full_backup > /nsr/logs/Atlas_full_`date

+\%Y-\%m-\%d`.out 2>&1

—————————————————————-

(all on one line, of course)

Anarchist
Curu3MyHg
Какое подробное описание проблемы..

А что там рассказывать:

Проверил: в день интервала отрабатывает.

А вот времени на проверку того, что отрабатывает только в выделенный день интервала не было.

Поверил на слово.

А он, сцуко, на следующий день снова отработал. На этот раз уже не тестовый скрипт :(