Cronjob działa przed zaplanowanym czasem, co może być nie tak?
10
Mam poniżej plan crontab zaplanowany na sobotę, która przypada między 19-23 dniem, nie jestem pewien, dlaczego uruchomiono go 20-go (piątek). Jakieś domysły?
Możesz znaleźć inspirację w /etc/cron.d/mdadmUbuntu i Debianie. Tak działa pierwsza niedziela każdego miesiąca:57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi
kasperd
dzięki kasperd, 0 18 * * 6 [date +\%d -le 07] && <task> działa dobrze dla mnie, gdzie należy uruchomić w pierwszą sobotę każdego miesiąca.
również
Odpowiedzi:
16
To wyrażenie Cron tłumaczy się na:
At 21:00 on the 19, 20, 21, 22 and 23rd of every month and every Saturday.
Tak więc wyraźnie powiedział cronowi, aby wystartował w piątek 20-go. Wynika to z:
When the schedule specifies both date and weekday, they're combined with a logical OR,
i.e. the job will run if current_minute == scheduled_minute
&& current_hour == scheduled_hour && current_month == scheduled_month &&
(current_day == scheduled_date OR current_weekday == scheduled_weekday).
/etc/cron.d/mdadm
Ubuntu i Debianie. Tak działa pierwsza niedziela każdego miesiąca:57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi
0 18 * * 6 [date +\%d -le 07] && <task>
działa dobrze dla mnie, gdzie należy uruchomić w pierwszą sobotę każdego miesiąca.Odpowiedzi:
To wyrażenie Cron tłumaczy się na:
Tak więc wyraźnie powiedział cronowi, aby wystartował w piątek 20-go. Wynika to z:
Ta informacja pochodzi z tego poręcznego narzędzia Cron: http://crontab.guru/
Aby wykonać pracę w określone dni, kiedy jest sobota, możesz użyć:
To rozwiązanie pochodzi z crontab dzień tygodnia vs. dzień miesiąca?
źródło
%
ma specjalne znaczenie w cronjobs - oddziela standardowe wejście komendy.