Execute job in Jenkins every X minutes and in a time range - time

I would like to execute a job in Jenkins with a cron every 15 minutes between a time range.
I tried with this:
15 8-19 * * 1-5
But it execute hourly. I want this:
Every 15 minutes From 8AM to 7PM and from Monday to Friday.

From the Jenkins' cron syntax:
* specifies all valid values
M-N specifies a range of values
M-N/X or */X steps by intervals of X through the specified range or whole valid range
To allow periodically scheduled tasks to produce even load on the system, the symbol H (for “hash”) should be used wherever possible.
According to the rules above you can use the following:
H/15 8-19 * * 1-5

If I under Stand Your question all you need is something like below :
*/15 4,7 * * * /bin/sample >/dev/null 2>&1
i use crontab generator Online to get crontab configuration

*/15 8-18 * * 1-5
This will give you what you want, but the last execution will be at 18:45.
*/x means 'execute once in a given 'x' minutes/hours/etc

Related

Schedule cron from 10PM to 1AM every half an hour

I am looking to schedule a cron from 10PM to 1AM(both inclusive) every half an hour .
I tried this */30 22-0 * * *
doesn't seem to work after 11:30 PM
or to be specific this works till 11:59 PM I guess.
Cron doesn't always provide the syntax to specify the times you want in a single line, but there's usually a workaround using two lines (or sometimes more).
Based on your description, apparently a range whose upper bound is smaller than its lower bound doesn't wrap around; rather it just seems to extend to the end of the day/hour/whatever. In your case, 22-0 apparently represents hours 22 and 23, and presumably 22-5, for example, would mean the same thing. (The man page is unclear on this.)
This should do the trick, though I haven't had a chance to test it:
*/30 22-23 * * * <command> # 22:00, 22:30, 23:00, 23:30
*/30 0 * * * <command> # 00:00, 00:30
0 1 * * * <command> # 01:00
Based on the other answer: You can make the crons one line less by combine records for 22-23 and 0 hour:
*/30 0,22-23 * * * <command>
0 1 * * * <command>
In some UNIX operating systems this may not work and you should explicitly mention the hours and minutes:
0,30 0,22,23 * * * <command>
0 1 * * * <command>

Scheduled Cron Expressions does not work as expected

I'm tring to run a function every 10 minutes.
According to the documentation, it is stated that e.g ("0 0/5 * * *?") Runs every 5 minutes since the program started, but why when I change 5 by 10 ("0 0/10 * * *?"), the function does not run every 10 minutes e.g (10:10 - 10:20 - 10:30)
Is it really me who misunderstands the Cron Expressions or the syntax is wrong.
here is typo in :
"0 0/10 * * *?"
should be
"0 0/10 * * * ?"
here is the useful resource CronMaker is a utility which helps you to build cron expressions. CronMaker uses Quartz open source scheduler.

Crontab won't run automatically

I have setup a cron job as shown below but it won't run. When I run the script manually, I don't see any errors.
#_____WPR Jobs
00 9 * * * mon-sat /var/spool/ftpexts/bin/exe_get_x_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_x_wpr.log
00 9 * * * mon-sat /var/spool/ftpexts/bin/exe_get_y_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_y_wpr.log
00 9 * * * mon-sat /var/spool/ftpexts/bin/exe_get_z_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_z_wpr.log
When I execute the script manually as shown below, it runs smoothly with log records too.
/var/spool/ftpexts/bin/exe_get_x_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_x_wpr.log
crontab is trying to execute mon-sat as a command.
The day of the week is specified as the 5th field of a crontab entry. You have *, which means it runs on any day of the week. Delete that 5th field, making mon-sat the 5th field. (Interesting, I didn't know until now that crontab would recognize names.)
UPDATE: The crontab(5) man page (type man 5 crontab to read it on your system) says:
Names can also be used for the "month" and "day of week" fields. Use
the first three letters of the particular day or month (case doesn't
matter). Ranges or lists of names are not allowed.
You say that mon-sat worked for you. A quick experiment indicates that ranges of names actually do work, but since the documentation says they're not allowed, I suggest not depending on that. Write 1-6 rather than mon-sat if you want the job to run Monday through Saturday.

Crontab is not running on mac osx 10.9.3

I would like to open a URL using crontab in the terminal every minute for example. I also tried "cronnix" and "lingos" but non of the methods work. My mashine simply does not execute the command. I did
crontab -e
then I inserted the line
1 * * * * open http://www.google.de/
terminal says it is installing the new cron job. But then nothing happens. What do I have to do? Thanks.
1 * * * *
means the job will execute every first minute of every hour of every day of every week of every month, for example at 09:01, 10:01, 11:01, ...
*/x * * * *
will execute the job every x'th minute of every hour of every (yadda yadda...).
For example, for x=5 the job will execute at 09:05, 09:10, 09:15, and so on, but also of course at 10:05, 10:10, 10:15, ...
For x=1 it is the same as just saying
* * * * *

Cronjob to run every 30 minutes

I want to set a cronjob entry that runs a script every 30 minutes from 9:00 to 18:00 but I do not want it to run at 18:30. The script should run for the first time at 9:00 and for the last time at 18:00. Is this possible?
Yes, it is possible; cron itself can't solve the task, but it is possible using additional shell command:
*/30 9-18 * * * root [ $(date +%H%M) = 1830 ] || your_command
your_command will be executed if and only if the current time is not equal to 18:30
You might need to have two entries:
0,30 9-17 * * * /script
0 18 * * * /script
Alternatively, you could modify your script to check if it's close to 18:30 or not, and exit early if so.

Resources