Sponsored Content
Top Forums Shell Programming and Scripting Schedule and Run By weekly shell script in cronjob Post 302776977 by rbatte1 on Thursday 7th of March 2013 07:51:42 AM
Old 03-07-2013
Depending on the OS you are using, you may have a cron setup that works for every two weeks, but by using the date command in your script you could schedule it weekly and they choose whether to actually execute or not.

On many flavours of unix, you may find that
Code:
date +%j

gives the Julian date. Given that there are seven days in a week, you could schedule every Monday and then have a test for "Is today an even Julian date?" test at the top.

Some other flavours will give the week of the year, and it's a similar thing, but probably using Julian date is the best.

So an entry for cron:-
Code:
$ crontab -e
0 4 * * 1 /home/myuser/myscript

will run this every Monday at 4am. You could then code your script like this:-
Code:
#!/bin/ksh

juldate=`date +%j`
((jultest=$juldate/2))
((jultest=$juldate*2))

if [ $juldate -ne $jultest ]
then
   print "This is an odd week of the year."
   print "No actions performed."
   exit
fi

# I have confirmed it is an even numbered Monday, so proceed

blah blah blah.......

Of course, you could make the test -eq to say you want to ignore even numbered Mondays. The divide by two, multiply by two relys on odd numbers division getting the 0.5 truncated, so if the Julian date is 123, the half is only counted as 61, so double it again and you get 122. Test then finds that they are different.


Does this help?



Robin
Liverpool/Blackburn
UK
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

set schedule to run a script at background while logout

Hi, How can I run a script at 9:00am and 6:00pm everyday? Can I run it at background while I logout my account? Please help!! Many Thanks!! (1 Reply)
Discussion started by: happyv
1 Replies

2. Solaris

How to run a script as different user inside cronjob in solaris.

Hi , I have a shell script to perform some actions on sun solaris box . This script normally requires to be run as a different user. so, whenever i have to run this script, i need to sudo in as that user , enter the password and execute it. Now,I have to setup a cronjob to execute the script... (11 Replies)
Discussion started by: csg_user
11 Replies

3. UNIX for Dummies Questions & Answers

cronjob to run perl script

Hi all Recently i had finished a perl script. When i run manually, the script work fine. But when i wanted to put the script in cron, it didn't get the same output as it run manually. I felt that it only execute the script until certain line then it stop as i see most of the related files didn't... (6 Replies)
Discussion started by: AirWalker83
6 Replies

4. Shell Programming and Scripting

Running script that sends an html formatted email fails when its run as cronjob

Hi Im very new at working with unix and this problem I simply can not understand. I know there are a lot of threads about problems with shell scripts behaving differently when run from a terminal and from a cronjob. I have tried everything(almost) but I still havent cracked this problem. Im... (15 Replies)
Discussion started by: Nightowl
15 Replies

5. Shell Programming and Scripting

General Q: how to run/schedule a php script from cron jobs maybe via bash from shell?

Status quo is, within a web application, which is coded completely in php (not by me, I dont know php), I have to fill out several fields, and execute it manually by clicking the "go" button in my browser, several times a day. Thats because: The script itself pulls data (textfiles) from a... (3 Replies)
Discussion started by: lowmaster
3 Replies

6. Shell Programming and Scripting

How to schedule a cronjob to run every 15 mins ?

Hi, I want to schedule a job to run every 15 mins through cron. searched the forums and came up with this piece of code.i have given this in my crontab 0-59/15 * * * * sh /usr/ss/job But its not being run. Have i made any mistake here. Can any1 post the cron code for scheduling the... (5 Replies)
Discussion started by: suresh_kb211
5 Replies

7. AIX

My script didn't run every run every minute at cronjob

In my cronjob, I would like to schedule my script.sh to run every minutes. I crontab -e and have in line below but it didn't seems to run at all. * * * * * script.sh When I run it manually, I can run it. Is that anything wrong with the above line? If I change it to something like below,... (4 Replies)
Discussion started by: ngaisteve1
4 Replies

8. Shell Programming and Scripting

Schedule a script to run at 10am from mon to fri

Hi, I need to write a shell script which will run i background and will execute other script only on Mon to Fri 10 AM but not on Sat and Sun. I am able to set it to run on every day at 10AM but how to make it to run only on Mon to Fri Thanks, Firestar. (7 Replies)
Discussion started by: firestar
7 Replies

9. UNIX for Dummies Questions & Answers

Best way to schedule script to run Ubuntu 10.04

On Ubuntu 10.04 LTS, I would like to know the best way to schedule myscript.sh to run at a specified time, please provide examples and specify things like does cron have to be running, how do I check if cron is running and all that. I have tried unsuccessfully in the past to run the AT command,... (1 Reply)
Discussion started by: glev2005
1 Replies

10. UNIX for Dummies Questions & Answers

Script does not run from a user specific cronjob.

Hello, I have two crontabs, one for the root and one for another user. There is a script in my configurations that has to send a email. The script works and sends the emails when I run it by hand with either the root or the user, and when I program it in the root's crontab. But! It does not... (3 Replies)
Discussion started by: Tralaraloro
3 Replies
CAL(1)							    BSD General Commands Manual 						    CAL(1)

NAME
cal, ncal -- displays a calendar and the date of easter SYNOPSIS
cal [-jy] [[month] year] cal [-j] -m month [year] ncal [-jJpwy] [-s country_code] [[month] year] ncal [-Jeo] [year] DESCRIPTION
The cal utility displays a simple calendar in traditional format and ncal offers an alternative layout, more options and the date of easter. The new format is a little cramped but it makes a year fit on a 25x80 terminal. If arguments are not specified, the current month is dis- played. The options are as follows: -J Display Julian Calendar, if combined with the -e option, display date of easter according to the Julian Calendar. -e Display date of easter (for western churches). -j Display Julian days (days one-based, numbered from January 1). -m month Display the specified month. -o Display date of orthodox easter (Greek and Russian Orthodox Churches). -p Print the country codes and switching days from Julian to Gregorian Calendar as they are assumed by ncal. The country code as deter- mined from the local environment is marked with an asterisk. -s country_code Assume the switch from Julian to Gregorian Calendar at the date associated with the country_code. If not specified, ncal tries to guess the switch date from the local environment or falls back to September 2, 1752. This was when Great Britain and her colonies switched to the Gregorian Calendar. -w Print the number of the week below each week column. -y Display a calendar for the specified year. A single parameter specifies the year (1 - 9999) to be displayed; note the year must be fully specified: ``cal 89'' will not display a calen- dar for 1989. Two parameters denote the month and year; the month is either a number between 1 and 12, or a full or abbreviated name as specified by the current locale. Month and year default to those of the current system clock and time zone (so ``cal -m 8'' will display a calendar for the month of August in the current year). A year starts on Jan 1. SEE ALSO
calendar(3), strftime(3) HISTORY
A cal command appeared in Version 5 AT&T UNIX. The ncal command appeared in FreeBSD 2.2.6. AUTHORS
The ncal command and manual were written by Wolfgang Helbig <helbig@FreeBSD.org>. BUGS
The assignment of Julian--Gregorian switching dates to country codes is historically naive for many countries. BSD
November 23, 2004 BSD
All times are GMT -4. The time now is 09:19 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy