Титла: crond седмична задача Публикувано от: laskov в Feb 19, 2018, 12:02 Искам crond да стартира задача в петък в 21 часа:
- всеки първи петък в месеца с едни опции - всеки втори, трети, четвърти, пети - с други. Прави архивиране на данни. Пробвах 0 21 1-7 * 5 do-backup --level=1 0 21 8-31 * 5 do-backup --level=2 с идеята ако датата е до 7-ми да се стартира 1, а ако е 8-31 - 2, но не работи. Тогава се зачетох в man и пробвах това, което пише там: 0 21 1 * 5 do-backup --level=1 0 21 2-5 * 5 do-backup --level=2 което трябва да е 1-ви петък - 1, а 2-ри до 5-ти петък - 2, но и това не работи. Ако не стане с cron, ще трябва да анализирам деня в изпълнявания скрипт, а ме мързи :) . Ще съм много благодарен ако ударите едно рамо [_]3. Slackware 14.2 man crontab Цитат To request the last Monday, etc. in a month, ask for the “5th” one. Титла: Re: crond седмична задача Публикувано от: Naka в Feb 19, 2018, 12:55 При мене Центос5 пише друго
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 Аз го разбирам така: ако си задал едновременно деня (1-30) и деня в седмицата (неделя-понеделник) то те са обединени с OR. Крона се стартира и в зададеният ден и в зададеният ден от седмицата. Титла: Re: crond седмична задача Публикувано от: spec1a в Feb 19, 2018, 12:57 Ще трябва да напишеш bash скрипт,който да ти проверява деня от
седмицата и деня от месеца: #!/bin/bash d=$(date +%u) n=$(date +%d) # friday: if [ $d -eq 5 ]; then # 1st friday: if [ $n -lt 8 ]; then ...command... ... и така нататък, $(date +%u) е деня от седмицата,$(date +%d) е деня от месеца.Нагласяш от crontab да ти стартира този скрипт. Успех ! Титла: Re: crond седмична задача Публикувано от: malin в Feb 19, 2018, 13:06 Възможно ли е да става така?
https://superuser.com/questions/428807/run-a-cron-job-on-the-first-monday-of-every-month/1294027#1294027 Титла: Re: crond седмична задача Публикувано от: makeme в Feb 19, 2018, 13:16 Възможно ли е да става така?Еми колегата точно това е пробвал, но съдейки и по моя ман (убунту, и е същия като на Naka), @Naka има право. Като погледнах надолу, пише следното: Код: # Run on every second Saturday of the month При това положение, явно няма точно такава функционалност (а горното е точно OR)и трябва сам да си правиш проверка за деня (test $(date +\%u) -eq 6 &&) ПП: за да не е объркващо, ще го напиша направо: Код: 0 21 1-7 * * test $(date +\%u) -eq 5 && do-backup --level=1 ПП2: Между другото в линка на @malin (като изключим точния отговор, който е линкнал) пише същото :) Титла: Re: crond седмична задача Публикувано от: malin в Feb 19, 2018, 13:24 /etc/cron.monthly ?
Титла: Re: crond седмична задача Публикувано от: laskov в Feb 19, 2018, 13:45 Всичко ми беше полезно!
Най ми хареса това: Тествах го, работи и смятам да го оставя така. Благодаря много! [_]3 Точният текст е: Цитат do-backup когато е без опцията прави само rsync |