Crontab bad day-of-week when trying to run 3rd wednesday of the month - cron

Have tried a schedule of below to get a job to run at 7:30 on the 3rd wednesday of the month
30 07 * * wed#3
30 07 * * 4#3
Get below error
"/tmp/crontab.kE5RJg":76: bad day-of-week
errors in crontab file, can't install
Curretly using below
30 07 15-21 * wed

Related

i am using node cron for running jobs , i will this run every day including saturday and sunday '00 00 22 * * *'

i am using node cron for running jobs , i am confused will this
pattern run every day including Saturday and Sunday as well
'00 00 22 * * *'
You have an entry too many in your cron expression.
It should be:
minute hour dayofmonth month dayofweek
Assuming you want to run at 10pm every day:
0 22 * * *
If you ever need to double check your cron expressions, I recommend using crontab guru

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.”

timezone aware cron jobs (adjust for DST)

I have a need to download files from all over the world to the same server. The files become available at the same time each day in the local timezone. The challenge is daylight savings time. Because different countries adjust on different days, and some don't do DST at all, the offset between any 2 timezones changes throughout the year. So it is not possible to convert everything into a single timezone. Is there a way to handle this with cron? Or something similar to cron?
I already tried this and it does not do what I want:
TZ=Asia/Tokyo
05 15 * * * echo $(date) JAPAN >> /tmp/crontest1.txt 2>&1
TZ=Europe/London
05 15 * * * echo $(date) LONDON >> /tmp/crontest2.txt 2>&1
TZ=America/New_York
05 15 * * * echo $(date) NY >> /tmp/crontest3.txt 2>&1
TZ=America/Denver
05 15 * * * echo $(date) DENVER >> /tmp/crontest4.txt 2>&1
everything runs at 15:05 in the timezone of the server and the output is
Fri Mar 24 04:05:01 JST 2017 JAPAN
Thu Mar 23 19:05:01 GMT 2017 LONDON
Thu Mar 23 15:05:01 EDT 2017 NY
Thu Mar 23 13:05:01 MDT 2017 DENVER
so while each process runs with the TZ value set correctly it runs at the time of the main server. I need something that adjusts the start time for DST.

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.

crontab hour with UTC working hours GMT-8

i have a machine set in GMT.
i would like to have a cron task scheduled from 6AM to 5PM in PST, which is GMT-8.
gmt time zone. typical.
00 06-17 * * *
now -8 produces a crontab bad hour error.
00 22-09 * * *
the following is accepted or should i say, no error.
00 22,23,0,1,2,3,4,5,6,7,8,9 * * *
any short form therefore?
For vixie cron,
Lists and ranges are allowed to co-exist in the same field. "1-3,7-9" would be rejected by AT&T or BSD cron -- they want to see "1-3" or "7,8,9" ONLY
That is, the following:
00 22-23,0-9 * * *
You can try by changing the time zone for cron also:
suku#ubuntu-vm:~$ crontab -l | tail -2
TZ=Africa/Tripoli
* * * * * date > date.txt
suku#ubuntu-vm:~$ cat date.txt
Thu Jan 10 18:50:01 EET 2013
suku#ubuntu-vm:~$ date
Thu Jan 10 22:20:19 IST 2013
A good place to try out the basics is the cron simulator at www.dataphyx.com 1

Resources