will cronjob having 2 triggers with different cron-expression will trigger twice if same condition satisfies both the triggers? - cron

I have a cronjob which runs 2 days a week at 4:30 CET with help of trigger.
0 30 4 ? * MON,WED *
I want to it to also run in the 1st day of month. since in a cron expression days in a week and day of month we can't put it together.
So, if i add new trigger with cron expression of 1st day of the month with the same time 4:30 CET, it will trigger the cronjob twice because condition is satisfied in both the triggers?
0 30 4 1 * ? *
if yes then can anyone suggest any solution?

If the cronJob is in running state then you cannot run it again until it finishes, but if you want to run it with different triggers, then you can create 2 different triggers.

Related

Cron Expression to trigger every previous Month File

I am trying to schedule a cronjob to get triggered on the 4th of every month at 9 AM, which is fine. But I want to schedule a cronjob to run on every previous month of the current date.
Ex:
Schedule - 202105(YYYYMM) - 0 9 4 * *
Expected - 202104(YYYYMM) -?
If I'm executing on May 4th 2021 9 AM, it has to trigger for April 4th 2021, that means it has to run for previous month files.
Is it possible to schedule a cronjob in a way to pick previous month files on current month execution?

Cron job one schedule for 3rd Sunday but different schedule every other day

We have jobs that are scheduled to run 1 time per day - every day
We do maintenance every 3rd Sunday of the month.
Up until now every month we have manually adjusted the cron to make the job run a little later in the morning then after maintenance we reset to the desired schedule
I am trying to change cron so that we
run at 7:00am every day EXCEPT the third Sunday of the month
run at 9:00am only on the third Sunday of the month
the second item I am able to handle
0 13 15-21 * 0
however, the first has me stumped. I thought this would do the job but it will only execute this if the day is between 1-14 or 22-31 but what if the 15th is not Sunday - then it won't run.
0 11 1-14,22-31 * *
How do I tell cron to run a schedule EXCEPT the third Sunday of the month?
There is a large base of guidance on how to limit when a cron runs to a specific window but I haven't found much for how to EXCLUDE a cron from a specific window
******** UPDATE ********
I think I may have come up with an answer - not sure if it is the most efficient but
0 11 1-14,22-31 * 0
0 13 15-21 * 0
0 11 1-14,22-31 * 1-6
The above will
run at 11:00 UTC on Sunday if date is between 1-14 or 22-31
run at 13:00 UTC on Sunday if date is between 15-21 (3rd Sunday)
run at 11:00 UTC Monday through Saturday all month
If a cron job has different timing than others, then it best to just define it by itself rather than trying to combine, unless you put some code in your script to do what you actually want. Doing something in cron on some nth day of the month is a pretty well known problem. Most crontab man pages have this note:
Note: The day of a command's execution can be specified in the following two fields — 'day of month', and 'day of week'. If both fields are restricted (i.e., do not contain the "*" character), the command will be run when either field matches the crent 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.
So it does OR between the day of the week and the day of the month, not an AND. I don't who ever thought this was helpful, but that's the way it is. You can see solutions at:
Run every 2nd and 4th Saturday of the month
you need something like (this assumes cron runs /bin/sh):
[ `date +\%w` -eq 6 ] && <command>
on your cron job line, the above is would restrict to running only on Saturday.

How to create a cron schedule for every 3 weeks starting from today or X date

I'm needing to create a cron schedule for a Jira subscription to email out every 3 weeks from x date to line up with our sprints.
I could manually trigger this but ideally would like this automated.
-edited for current cron
0 0 8 1/21 * ? * this is as close as I've gotten but will only trigger on the 1rst of every month then 21 days after.

Complex Cron Scheduler

Is it possible to start a Cron Scheduler every 30 days before the last day of each month?
I know how to trigger it every last days (not 30 days before that) using this expression for example:
0 0 9 L /1 *
Thanks for you help.
Best,
Ramzi

can't get the right cron job timing

i'm trying to do some stuff automatically every 8 Weeks, so i had open a new user crontab like this one:
crontab -e
0 9 * */2 1-5 do_this_stuff
# do it every 2 month on monday till friday at 9:00 am
This should do the job every 2 month on monday till friday on 9:00 am, but i does not. It is doing the job evey week once. Don't get it. What i'm doing wrong?
Running System is a latest debian.
regarding http://wiki.ubuntuusers.de/Cron it should run fine
The Anwer is, cron can't do a job randomly on a random day in a month. I had to change my crontab to: 0 9 1 */2 * do_sm_stuff -- this runs every two Month always on the first Day in a Month
thank you Igor

Resources