How to set Cron Job for 11 PM to 11:59 PM - cron

I want to send emails automatically between 9 PM to 9 AM after every 2 minutes.
I have set the cron job as below
*/2 21-23, 0-9 * * *
Its running perfectly But I am not able to set it to include the time between 11 PM-11:59 PM.

Related

How to run a cron job which runs every 4 hrs starting at 4:30 pm and shouldnt run between 2 am and 6am

I have tried creating a cron expression starting at 4 pm running every 4 hrs but not sure how to start at 4:30.
Below is the expression:0 0 16/4,20,0,8,12? * * *

Running a cron at 4 am and 4 pm

The following cron expression cron(0 14 ? * MON-FRI *) basically runs something 4:00 pm from Monday to Friday.
I am wondering if it is possible to modify the expression so I can run something at 4:00 am and 4:00 pm every Monday to Friday.
Use this crontab line to run command_name at 4:00 and 16:00 (4 AM and 4 PM) Monday-Friday:
0 4,16 * * 1-5 command_name
From crontab manual:
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sunday, or use names)
Your Cron job description looks different from the general crontab. But to give you an idea of how to achieve what you're looking for:
Edit cron-table. Choose your editor.
crontab -e
Add 2 lines cron jobs.
* 4 * * 1-5 /usr/bin/...# Your command goes here 04:00 am.
* 16 * * 1-5 /usr/bin/...# Your command goes here 04:00 pm.
4PM (16:00): 0 16 * * MON-FRI
See crontab guru
"At 16:00 on every day-of-week from Monday through Friday.”
4AM &4 PM (4:00 & 16:00): 0 4,16 * * MON-FRI
See crontab guru
β€œAt minute 0 past hour 4 and 16 on every day-of-week from Monday through Friday.”

Run a cron script at 1:00 PM UTC every day

i need to run a cron at 1:00 PM UTC every day, is this the right crontab for UTC ?
0 1 * * *
No, it should be in 24 hour format so
0 13 * * *
The timezone within which cron jobs are scheduled by default, is based upon the default system timezone (/etc/timezone). Depending upon your distribution, you may be able to set CRON_TZ in your crontab.
If your system default timezone is UTC then 0 1 * * * is correct.
You can add a job like the following to your crontab to determine which timezone cron is using:
0 * * * * date > /tmp/date.out

Crontab executes at the wrong time

I have a crontab settings as follows:
sudo crontab -l -u bheng
Contents:
#field allowed values
# ----- --------------
# minute 0-59
# hour 0-23
# day of month 1-31
# month 1-12 (or names, see below)
# day of week 0-7 (0 or 7 is Sun, or use names)
#
# m h dom mon dow command
MAILTO="bheng#outlook.com"
#Daily
01 22 * * * php /home/mysite.com/artisan products:exportdiff --interval="yesterday"
16 22 * * * php /home/mysite.com/artisan images:exportdiff --interval="yesterday"
31 22 * * * php /home/mysite.com/artisan publications:exportdiff --interval="yesterday"
#Weekly
1 23 * * 7 php /home/mysite.com/artisan publications:exportdiff --interval="last sunday"
16 23 * * 7 php /home/mysite.com/artisan images:exportdiff --interval="last sunday"
31 23 * * 7 php /home/mysite.com/artisan products:exportdiff --interval="last sunday"
As you can see, it suppose to be kicking at 10 and 11 PM at night.
But instead, I got 3 emails at 5 PM yesterday at 5:01 PM, 5:16 PM, 5:31 PM.
I thought it was the time wrong the in system or VM so I checked it I saw UTC time.
Then, I update it by running sudo dpkg-reconfigure tzdata and set it to US Eastern time.
Now, when I ran date command I got Ex.Thu Dec 15 07:56:27 EST 2016 correctly as US EST time.
Is there some service that I need to restart?
Or is this something other crontab settings that might have overwrite my current settings ?
I believe you have to restart cron after making time / time zone related changes.
Depending on your version of cron, you might be able to restart it with sudo service cron restart.

Running a cron job every 2:30 on every day?

If I creating cronjob to running for every 2:30 the command will run? (It mean, my cron will running after 90 minutes for every hours.)
the command like: 30 */2 * * * /command/xxx => that's right?
Please help?
Your cron expression 30 */2 * * * will run the command every 2 hours at 30 mins past the hour i.e.00:30, 02:30, 04:30, 06:30 and so on.
If you want to run your command at intervals of two and a half hours i.e. 00:00, 02:30, 05:00, 07:30 and so on, you need to set up two crons:
0 0-20/5 * * * runs at 0 mins past the hour, every 5 hours between 00:00 and 20:00 inclusive i.e. 00:00, 05:00, 10:00, 15:00 and 20:00
30 2-22/5 * * * runs at 30 mins past the hour, every 5 hours between 02:00 and 22:00 inclusive i.e. 02:30, 07:30, 12:30, 17:30 and 22:30
On the other hand, if you want to run your command only once every day at 02:30 use 30 2 * * *.
sudo crontab -e
and then add this:
30 2 * * * /enter/your/command

Resources