Schedule Job Fortnightly (FRI) in Crontab


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Schedule Job Fortnightly (FRI) in Crontab
# 1  
Old 08-28-2013
Schedule Job Fortnightly (FRI) in Crontab

Solaris platform.
How can I schedule crontab job every 2 weeks and the job to be scheduled on Fri?
# 2  
Old 08-28-2013
https://www.unix.com/unix-advanced-ex...ther-week.html

Code:
# "first" friday  -- and note # generally does work in crontab files as a comment
0 8 ** 6  [ $((  $(( $(date +%s ) / 86400  )) % 2 )) -eq 0 ] && /path/to/myjob
#  "second" friday
0 8 ** 6  [ $((  $(( $(date +%s ) / 86400  )) % 2 )) -eq 1 ] && /path/to/myjob

# 3  
Old 08-28-2013
No Solaris platform available to test but this crontab entry :

Code:
0 10 * * 5 [ $(( $(date +'\%U') % 2)) -gt 0 ] && /usr/local/bin/your_script

Or run your script every friday and test week of year is odd with

Code:
if [ $(( $(date +%U) % 2 )) -gt 0 ]

Note: % has special meaning to many versions of cron and usually needed to be quoted

Last edited by Chubler_XL; 08-28-2013 at 10:27 PM.. Reason: Note about % in crontab
These 2 Users Gave Thanks to Chubler_XL For This Post:
# 4  
Old 08-28-2013
FWIW- % on a crontab line is POSIX for "end of line". Any lines after the % character are considered stdin
# 5  
Old 09-03-2013
Hi All,

Thanks for the reply.
I'd tried as below, but encountered error.

0 8 ** 6 [ $(( $(( $(date +%s ) / 86400 )) % 2 )) -eq 0 ] && $HOME/admin/scripts/rjob.sh
crontab: error on previous line; unexpected character found in line.
crontab: errors detected in input, no crontab file generated.

---------- Post updated at 08:51 AM ---------- Previous update was at 08:41 AM ----------

I'm able to schedule with below syntax. Shall feedback the result..
0 10 * * 5 [ $(( $(date +'\%U') % 2)) -gt 0 ] && /usr/local/bin/your_script

---------- Post updated at 09:00 AM ---------- Previous update was at 08:51 AM ----------

[QUOTE=Chubler_XL;302848241]No Solaris platform available to test but this crontab entry :

Code:
0 10 * * 5 [ $(( $(date +'\%U') % 2)) -gt 0 ] && /usr/local/bin/your_script

Or run your script every friday and test week of year is odd with

Code:
if [ $(( $(date +%U) % 2 )) -gt 0 ]


Tested using below:
at now [ $(( $(date +'\%U') % 2)) -gt 0 ] && /path/rjob.sh
ksh: \35 % 2: syntax error
# 6  
Old 09-03-2013
Quote:
Originally Posted by KhawHL

... ... ...

Quote:
Originally Posted by Chubler_XL
No Solaris platform available to test but this crontab entry :

Code:
0 10 * * 5 [ $(( $(date +'\%U') % 2)) -gt 0 ] && /usr/local/bin/your_script

Or run your script every friday and test week of year is odd with

Code:
if [ $(( $(date +%U) % 2 )) -gt 0 ]


Tested using below:
at now [ $(( $(date +'\%U') % 2)) -gt 0 ] && /path/rjob.sh
ksh: \35 % 2: syntax error
You're making it too hard on yourself, just use:
Code:
if [ $(( $(date +%U) % 2 )) -gt 0 ]
then    /path/rjob.sh
fi


Last edited by Don Cragun; 09-03-2013 at 10:18 PM.. Reason: Fix mismatched QUOTE tags
# 7  
Old 09-03-2013
Also at now is not a valid way to test crontab entries particularly these ones with escaped percent symbols.

You are better off just writing a script that updates/appends to a logfile and scheduling it for 5 or 10 mins in the future and waiting for cron to run it.

eg if the current time was:

Tue, Sep 03 4:25 PM

Schedule a test for 4:30 PM :

Code:
30 16 * * *  [ $(( $(date +'\%U') % 2)) -gt 0 ] && echo "Script run" >> /tmp/test.log

Wait 5 mins and check /tmp/test.log

Last edited by Chubler_XL; 09-03-2013 at 10:37 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to schedule crontab?

Hi All, How to schedule crontab on all day except sunday and monday means from tuesday to saturday at 06:00AM. (3 Replies)
Discussion started by: Riverstone
3 Replies

2. Shell Programming and Scripting

Crontab schedule

Hi all, I would like to schedule a crontab script, which should run From 8pm Thursday to 2am Friday and it should run every 10 minutes. I have put a script like below, is it the correct one. 10 01,02,20,21,22,23,00 * * 4-5 /u01/app/test.ksh Any other options available to schedule the same... (6 Replies)
Discussion started by: sid2013
6 Replies

3. AIX

job run before schedule on crontab

Guys, yesterday i just make a script with email as a result and put them into crontab, it will execute on 23.33. Today, i recieved email from system twice as result the script. the first email send at 23.02 and the second send at 23.33 how is the script execute two times ? the first job run... (6 Replies)
Discussion started by: michlix
6 Replies

4. Shell Programming and Scripting

schedule job

Hi, I have a spcific box called abc in autosys and below that there are 2 jobs. my requirement is to run the abc box only on monday and rest of the day the rest of the jobs should be in success status.. ---------- Post updated at 03:11 PM ---------- Previous update was at 02:45 PM ----------... (4 Replies)
Discussion started by: j_panky
4 Replies

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

6. AIX

Schedule Job

how to schedule a job in aix, pls explain with cmd (1 Reply)
Discussion started by: udtyuvaraj
1 Replies

7. Shell Programming and Scripting

Schedule a job using Crontab

I would like to execute my script at 17.30 and 23.00 using crontab, could anybody help me out!! Thanks in Advance!! (1 Reply)
Discussion started by: jatanig
1 Replies

8. Solaris

crontab to run mon.wed.fri

I have it set to the following 0 9 * * 1,3,5 /var/tmp/sys_diag It ran correctly on Wednesday but did not run on Friday and I am not sure why, does the above appear to be correct? (3 Replies)
Discussion started by: deaconf19
3 Replies

9. UNIX for Dummies Questions & Answers

Crontab schedule

I have the following crontab entry. 0,30 00-16 * * * This job runs every 30 minutes between the hours of 12:00AM and 4:00PM. How can I have it stop at 4:30PM instead? Thank you, David (3 Replies)
Discussion started by: dkranes
3 Replies

10. UNIX for Advanced & Expert Users

How to schedule a job

Hi, How can i schedule a job, i.e a program named p found at path a/b/c, to run at a time T everyday? Thanks (5 Replies)
Discussion started by: ashvik
5 Replies
Login or Register to Ask a Question