Sponsored Content
Top Forums UNIX for Advanced & Expert Users Run A Job in Cron On A Specific Day Excluding Holidays Post 302696057 by jim mcnamara on Tuesday 4th of September 2012 08:06:28 AM
Old 09-04-2012
Holidays are often company specific - like in the US a lot of companies grant the day after Thanksgiving.

Put a holiday schedule, updated every year, in a place where your code can read it. Determining holidays has to be up to the script. UNIX does not have such a thing.

Ex:
Code:
# holiday file
# Christmas
12-25-2012

crontab
Code:
* * 25 * *  /path/to/my/script.sh >/path/to/logfile 2>&1

In script.sh:
Code:
#!/bin/bash
today="`date +%m-%d-%Y`"
grep -qF "$today" /path/to/holidayfile && exit    # do not run on holidays
...rest of script here.

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Does not run via cron job

I have a perl script, when I ran manually it works perfect. I check the permissions which are fine. How can I find out why it is not running? how can I setup a log to check. I am running it on solaris 9. It compares multiple files, SCP and then send out an e-mail. As I said when I ran it... (2 Replies)
Discussion started by: amir07
2 Replies

2. UNIX for Advanced & Expert Users

Need help with a script run by a cron job.

Hi, new to this forum and not sure if this is the right place to post. I'm new to cron jobs and scripts, and I need some help with a script to be used with a cron job. I already have a bot set up at a certain website address and need a script that the cron job will load every day that tells it to... (1 Reply)
Discussion started by: klawless
1 Replies

3. UNIX for Dummies Questions & Answers

cron script -run every 2nd day of month except Monday

I know I can't schedule this in cron and would have to write a wrapper around my script and schedule it in cron ....but not sure how do to this? How do I exclude Monday if the 2nd day of the month falls on a Monday? Thanks. I tried this: 0 0 2 * 0,2-6 command And I know this doesnt... (2 Replies)
Discussion started by: newtou
2 Replies

4. UNIX for Advanced & Expert Users

Use cron to run job every other week

my colleague was asking about this: is there a way to run a cron job biweekly, like a script five.sh to run every *OTHER* Friday within November its part about every other Friday we cant find any documentation. thx L (8 Replies)
Discussion started by: lydiaflamp
8 Replies

5. Shell Programming and Scripting

Cron job randomly once a day

I want to create a cron job randomly once a day for my site's registration. The responsible file for registrations is a config file and I need to change the contents twice on day (on and off) I know the way for random cron job for example */n * * * * /usr/local/bin/php... (6 Replies)
Discussion started by: lucker
6 Replies

6. Shell Programming and Scripting

Autosys job scheduling on specific day

Below is the requirement i am trying to do using auto sysjob. I need to create a JOB or script which will do the below things for me I have a box and there corresponding jobs as below BOX_1 JOB_1 JOB_2 BOX_2--- SU(JOB_2), this will run only on completion (Success) of JOB_2 ... (2 Replies)
Discussion started by: j_panky
2 Replies

7. Shell Programming and Scripting

Cron job - Need to run Cron every quarter at particular time

Hi, 1) If some job supposed to run on 1st of every month at 7 AM In cron job when we have a blackout on the 1st ( i.e when 1st falls on a sunday ) how can we make the job run the next business day? 2) How can we run a job on 25th of every quarter 7 AM(jan,apr,jul,oct) And if 25th... (5 Replies)
Discussion started by: System Admin 77
5 Replies

8. Shell Programming and Scripting

Cron Job to Run for 30 minutes

Hello Gurus, I have a requirement to run a job from cron only for 30 minutes duration daily twice at 8.35 am and 20.35 pm Can you please suggest how to schedule the job? Thanks- Pokhraj (5 Replies)
Discussion started by: pokhraj_d
5 Replies

9. Shell Programming and Scripting

Cron job cannot run the command

Hi, I created this cron job for asterisk to send sms daily to a number #!/bin/sh #custom mod - send sms once a day, at 07:00. CRON_PATH="/etc/asterisk/gw/crontabs_root"; if ! grep 'gsm send sms' $CRON_PATH > /dev/null 2>&1 ;then echo "* 7 * * * asterisk -rx 'gsm send sms 1 7666... (4 Replies)
Discussion started by: jazzyzha
4 Replies

10. AIX

AIX cron job is running everyday instead of on a particular day

Hello, I was trying to run a script on a dev server using cron job. It supposed to run 3rd sunday of every month. 45 4 15-21 * 0 /home/user1/myscript.sh >/dev/null 2>&1 # run this script 3rd sunday of every month When I Schedule it on AIX server, It is running every day at 4:45 AM. am I... (3 Replies)
Discussion started by: Kumar7997
3 Replies
Date::Manip::Holidays(3pm)				User Contributed Perl Documentation				Date::Manip::Holidays(3pm)

NAME
Date::Manip::Holidays - describes holidays and events SYNOPSIS
This describes the Holidays and Events sections of the config file, and how they are used. Holidays and events are specific days that are named. Holidays are used in business mode calculations, events are not. Events may be used for other calendaring operations. HOLIDAYS
The holiday section of the config file is used to define holidays. Each line is of the form: STRING = HOLIDAY HOLIDAY is the name of the holiday (or it can be blank in which case the day will still be treated as a holiday... for example the day after Thanksgiving is often a work holiday though it is not named). STRING is a string which can be parsed to give a valid date. It can be any of the following forms: A full date Specific holidays can be set which occur only a single time. May 5, 2000 = A one-time-only holiday Any format parseable by Date::Manip::Date::parse_date can be used. A date without a year Some holidays occur every year on the same day. These can be defined using the simple lines: Jan 1 = New Year's Day Jul 4th = Independence Day fourth Thu in Nov = Thanksgiving These dates must be written in a form which can be parsed as a full date by simply adding the year to the end of the string. Please refer to the Date::Manip::Date documentation to see what forms will work. ISO 8601 dates will not work since the year comes first. Any format parseable by Date::Manip::Date::parse_date can be used. Recurrence The dates can be specified using recurrences: 1*0:0:0:0:0:0*EASTER = Easter 1*11:0:11:0:0:0*DWD = Veteran's Day In cases where you are interested in business type calculations, you'll want to define most holidays using recurrences, since they can define when a holiday is celebrated in the financial world. For example, Christmas might be defined as: Dec 25 = Christmas but if it falls on a weekend, there won't be a business holiday associated with it. It could be defined using a recurrence: 1*12:0:24:0:0:0*DWD = Christmas so that if Christmas falls on a weekend, a holiday will be taken on the Friday before or the Monday after the weekend. You can use the fully specified format of a recurrence: 1*2:0:1:0:0:0***Jan 1 1999*Dec 31 2002 = Feb 2 from 1999-2002 OTHER HOLIDAY CONSIDERATIONS
Recurrences which change years It is now valid to have a recurrence defined for New Year's day which pushes the holiday to the previous year. For example, the most useful definition of New Year's day is: 1*1:0:1:0:0:0*DWD = New Year's Day which means to choose the closest working day to observe the holiday, even though this might mean that the holiday is observed on the previous year. Order of definitions is preserved The order of the definitions is preserved. In other words, when looking at the holidays for a year, previously defined holidays (in the order given in the config file) are correctly handled. As an example, if you wanted to define both Christmas and Boxing days (Boxing is the day after Christmas, and is celebrated in some parts of the world), and you wanted to celebrate Christmas on a business day on or after Dec 25, and Boxing day as the following work day, you could do it in one of the following ways: 1*12:0:25:0:0:0*NWD = Christmas 1*12:0:26:0:0:0*NWD = Boxing or 1*12:0:25:0:0:0*NWD = Christmas 1*12:0:25:0:0:0*NWD = Boxing Holidays go into affect the minute they are parsed which is why the second example works (though for clarity, the first one is preferable). The first recurrence defined the first business day on or after Dec 25 as Christmas. The second one then defines the business day after that as Boxing day. Since the definitions are stored as a list (NOT a hash as they were in Date::Manip 5.xx), using the same recurrence twice does not cause a problem. Multiple holidays Having multiple holidays on a single day is allowed. As an example, you may want to look at New Years day as both the observed and actual holidays, so you might have: 1*1:0:1:0:0:0*DWD = New Year's Day (observed) Jan 1 = New Year's Day Most of the time, both will fall on the same day, but sometimes they may differ. In this example, it is important that the observed holiday be listed first. Otherwise, Jan 1 will be marked as a holiday and then the observed date will check Jan 1, but where it is not a business day, it will move to another day (due to the DWD modifier). Likewise, the two holidays: 3rd Sunday in June = Father's Day Jun 17 = Bunker Hill Day sometimes fall on the same day. Using the Date::Manip::Date::list_holidays method (or the Date_IsHoliday function), you can get a list of all names that the date contains. EVENTS
The Events section of the config file is similar to the Holiday section. It is used to name certain days or times, but there are a few important differences: Events can be assigned to any time and duration All holidays are exactly 1 day long. They are assigned to a period of time from midnight to midnight. Events can be based at any time of the day, and may be of any duration. Events don't affect business mode calculations Unlike holidays, events are completely ignored when doing business mode calculations. Whereas holidays were added with business mode math in mind, events were added with calendar and scheduling applications in mind. Every line in the events section is of the form: EVENT = NAME where NAME is the name of the event, and EVENT defines when it occurs and its duration. An EVENT can be defined in the following ways: Date YMD YM Recur Date ; Date YMD ; YMD YM ; YM Date ; Delta Recur ; Delta Date refers to a full date/time (and is any string that can be parsed by Date::Manip::Date::parse). YMD is any string which can be parsed by Date::Manip::Date::parse_date. YM is any string which can be parsed by the parse_date method to give a date in the current year. Recur is a partial or fully specified recurrence. Delta is any string that can be parsed to form a delta. With the "Date" form, or the "Recur" form, the event starts at the time (or times) specified by the date or recurrence, and last 1 hour long. With the "YMD" and "YM" forms, the event occurs on the given day, and lasts all day. With all of the two part forms ("Date;Date", "YM;YM", etc.), the event starts at the first date and goes to the second date, or goes an amount of time specified by the delta. The "YMD;YMD" and "YM;YM" forms means that the event lasts from the start of the first date to the end of the second. In the Date;Date form, the event goes from the first date to the second date inclusive. In other words, both dates are in the event. In the "Date;Delta" and "Recur;Delta" forms, the Delta tells the length of the event. Also, in the Date;Date form, the second date may NOT be expressed as a delta. Currently, having an event longer than 1 year is NOT supported, but no checking is done for this. KNOWN BUGS
None known. BUGS AND QUESTIONS
Please refer to the Date::Manip::Problems documentation for information on submitting bug reports or questions to the author. SEE ALSO
Date::Manip - main module documentation LICENSE
This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR
Sullivan Beck (sbeck@cpan.org) perl v5.14.2 2012-06-02 Date::Manip::Holidays(3pm)
All times are GMT -4. The time now is 10:21 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy