Script to run on 2 4 and 7 day of the month


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script to run on 2 4 and 7 day of the month
# 1  
Old 06-08-2016
Script to run on 2 4 and 7 day of the month

I am looking for a unix script which could run a job on 2, 4 and 7 working day of the month.

if the days are falling on the saturday/sunday. it should run on the next day.

Thank you..
# 2  
Old 06-08-2016
Please give way more detail. How can the 2./4./7. WORKING day fall on a Sunday?

cron will schedule jobs according to a time pattern up to you. If that is not doable/sufficient, you'll need to add time control logics to you script.
# 3  
Old 06-08-2016
our requirement is that we need to create a touch file on 2 4 and 7 th working day of the each month ...

If the days falls on saturday/sunday, the touch file should be created on next working day.
# 4  
Old 06-09-2016
Hi.

It seems that we need to create a list of the working days in a month, then select days 2,4,7 from that list and check if today is in that list. Here is a demonstration of those steps, using utilities that are found in GNU/Debian as noted:
Code:
#!/usr/bin/env bash

# @(#) s3       Demonstrate display of days in month: "working", not weekend.

D=dateutils.dseq
# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C $D date grep

pl " First day of current month:"
date --date=today +%Y-%m-01

pl " Day 30 days in the future:"
date --date="now + 30 days" +%F

# Get list of working days from first of month.
$D -s "ss" $( date --date=today +%Y-%m-01 ) "$( date --date="now + 30 days" +%F )" -f "%F %a" > f1

pl " Sample of output:"
head -8 f1

pl " Select days 2,4,7:"
sed -n -e '2p' -e '4p' -e '7p' f1 |
tee f2

pl " Test if today is in the 3-day list:"
today=$( date +%F )
pe " today is $today"

if grep "$today" f2 >/dev/null
then
  pe " YES, touch the file now."
else
  pe " Today is NOT day 2,4,7, skipping touch."
fi

exit 0

producing (luckily today seems like the 7th working day):
Code:
$ ./s3

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 3.16.0-4-amd64, x86_64
Distribution        : Debian 8.4 (jessie) 
bash GNU bash 4.3.30
dateutils.dseq dseq 0.3.1
date (GNU coreutils) 8.23
grep (GNU grep) 2.20

-----
 First day of current month:
2016-06-01

-----
 Day 30 days in the future:
2016-07-09

-----
 Sample of output:
2016-06-01 Wed
2016-06-02 Thu
2016-06-03 Fri
2016-06-06 Mon
2016-06-07 Tue
2016-06-08 Wed
2016-06-09 Thu
2016-06-10 Fri

-----
 Select days 2,4,7:
2016-06-02 Thu
2016-06-06 Mon
2016-06-09 Thu

-----
 Test if today is in the 3-day list:
 today is 2016-06-09
 YES, touch the file now.

Not trivial, but an interesting problem, however, end cases are not tested, so some work may be needed to turn these ideas into a production script.

See man pages for details.

Best wishes ... cheers, drl
# 5  
Old 06-09-2016
Great work ... Thank you mate,

getting this error

Code:
+ date '--date=now + 30 days' +%F
2016-07-09
++ date --date=today +%Y-%m-01
++ date '--date=now + 30 days' +%F
+ dateutils.dseq -s ss 2016-06-01 2016-07-09 -f '%F %a'
./ra_test.sh: line 27: dateutils.dseq: command not found
+ pl ' Sample of output:'
+ pe
+ printf '\n'




Moderator's Comments:
Mod Comment Please use code tags as required by forum rules!

Last edited by RudiC; 06-10-2016 at 03:04 AM.. Reason: Added code tags.
# 6  
Old 06-09-2016
Install date-utils?

Code:
apt-get install date-utils

# 7  
Old 06-09-2016
is there any other way to over come it without installing the data utility ..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Writing a script to run weekly/monthly - check for weekday or day-of-the-month

Hi all, I currently have a UNIX file maintenance script that runs daily as a cron job. Now I want to change the script and create functions/sub inside it that runs on a weekly or monthly basis. To run all the scripts' daily maintenance, I want to schedule it in cron as simply maint.sh... (1 Reply)
Discussion started by: newbie_01
1 Replies

2. UNIX for Dummies Questions & Answers

Running Script via Crontab on 2nd Working day each month

Hello Guys, I have a questions regarding running a shell script every second working day each month. I have no clue how solve this problem :wall:. Important is that it has to be the second working (Mo-Fr). Example: If 1st and 2nd Days of month are Sat and Sun the script must run on 4th day... (5 Replies)
Discussion started by: Hollo
5 Replies

3. Shell Programming and Scripting

Need help in running script on last day of month

Hello Experts/Guru, I need a help in running the script on every month last day.... PS: due to some constrain I can't schedule in crontab Requirement: On Jan 31st i want to run some script, similarly on Feb 28th, March 31st, April 30th......till Dec 31st. Please help me by providing... (3 Replies)
Discussion started by: aks_1902
3 Replies

4. Shell Programming and Scripting

run the script for last day of the month

Hello Experts, I have a script which i want to run the on last day of every month. let say I have backup.sh script which i want to run it every month last day. Can anyone please help :confused: thanks (4 Replies)
Discussion started by: aks_1902
4 Replies

5. Shell Programming and Scripting

Script to counting a specific word in a logfile on each day of this month, last month etc

Hello All, I am trying to come up with a shell script to count a specific word in a logfile on each day of this month, last month and the month before. I need to produce this report and email it to customer. Any ideas would be appreciated! (5 Replies)
Discussion started by: pnara2
5 Replies

6. Shell Programming and Scripting

Script to find previous month last day minus one day timestamp

Hi All, I need to find the previous month last day minus one day, using shell script. Can you guys help me to do this. My Requirment is as below: Input for me will be 2000909(YYYYMM) I need the previous months last day minus 1 day timestamp. That is i need 2000908 months last day minus ... (3 Replies)
Discussion started by: girish.raos
3 Replies

7. Shell Programming and Scripting

crontab entry to run every last day of the month

i've created a script which should run every last day of the month. what would be the exact crontab entry for this? thanks! (9 Replies)
Discussion started by: tads98
9 Replies

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

9. Shell Programming and Scripting

Cron to run first day of month to calculate date 3 months ago

Hi, I would like to find out how can i calculate a date which is 3 months ago. I intend to run a cron job on the 1st of every month, and calculate the month 4 months earlier from the date. For example, if today's date is 1st May 2007, i would like to return 012007( January 2007). i can get... (1 Reply)
Discussion started by: new2ss
1 Replies

10. Shell Programming and Scripting

Write a shell script to find whether the first day of the month is a working day

Hi , I am relatively new to unix... Can u pls help me out to find out if the first day of the month is a working day ie from (Monday to Friday)...using Date and If clause in Korn shell.. This is very urgent. Thanks for ur help... (7 Replies)
Discussion started by: phani
7 Replies
Login or Register to Ask a Question