Conditional Cron


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Conditional Cron
# 1  
Old 03-30-2007
Conditional Cron

Hi,

The following test in cron fails. Any clue?

I want it to run last day before end of month

Code:
34 13 * * * [ `date +'\%d'` -eq `cal | grep -v "^$" | tail -1 | awk '{print $NF-1}'` ] && /export/myshell.sh

Regards
# 2  
Old 03-30-2007
Quote:
Originally Posted by baanprog
Hi,

The following test in cron fails. Any clue?

I want it to run last day before end of month

Code:
34 13 * * * [ `date +'\%d'` -eq `cal | grep -v "^$" | tail -1 | awk '{print $NF-1}'` ] && /export/myshell.sh

Regards
The backslash not required...

[ `date '+%d'` -eq `cal | grep -v "^$" | tail -1 | awk '{print $NF-1}'` ] && do....what required..
# 3  
Old 03-30-2007
still

The cron does not give any error, but i dont get the output file either...


regards
# 4  
Old 03-30-2007
First, the backslash is required. From the crontab man page:
Quote:
The sixth field of a line in a crontab file is a string that is executed by the shell at the specified times. A percent character in this field (unless escaped by \) is translated to a NEWLINE character.
Some versions of cron are smart enough to remove that blackslash prior to passing it to the shell. Others just leave it there. So the shell will see:
[ \30 -eq 30 ]
Most shells will get that right but some versions of the bourne shell will not. You are probably using Solaris which has both behaviors. My advice is to put shell scripting into a shell script which is executed by a modern shell. If you must get this to work, use eval with the date command
Code:
34 13 * * * [ `eval date +'\%d'` -eq `cal | grep -v "^$" | tail -1 | awk '{print $NF-1}'` ] && /export/myshell.sh

# 5  
Old 03-30-2007
running this in ksh seems to work -

[ $(TZ=GMT-48 date +%d) -eq "01" ] && echo true

Of course, you will need to make adjustments if you are far from England.

Basically, sets the date 48 hours ahead and does the date. Today, the 30th, comes up with 01, since march has 30 days.

The cal routine would not work on months where the last day of the month was on Sunday, since that would be the first field, and $NF-1 would be the entire line (the last day), and not the day before.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Execution problem with Cron: Script works manually but not w/Cron. Why?

Hello gurus, I am making what I think is a simple db2 call from within a shell script but I am having difficulty producing the desired report when I run the script shown below from a shell script in cron. For example, my script and the crontab file setup is shown below: #!/bin/ksh db2... (3 Replies)
Discussion started by: okonita
3 Replies

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

3. Shell Programming and Scripting

Commented cron job -- cron monitoring

Hi I have a requirement to write a shell script,that will check the all commented job in cron job.Please help !! (2 Replies)
Discussion started by: netdbaind
2 Replies

4. Solaris

Cron job running even after cron is removed

Hi , I have removed a cron for particular user , but cron job seems to be running even after the cron entry is removed. The purpose of the cron was to sendmail to user ( it uses mailx utility ) I have restarted cron and sendmail service still user is getting mail alerts from the cron job. And... (4 Replies)
Discussion started by: chidori
4 Replies

5. UNIX for Dummies Questions & Answers

How are cron.allow and cron.deny read?

Hi, all! I was working on my Debian, minding my own business but then I wanted to see what happened if the same user was included on both cron.allow and cron.deny :p I would have bet that cron.deny was going to override cron.allow for security reasons, but my computer proved me wrong:... (3 Replies)
Discussion started by: pereyrax
3 Replies

6. Solaris

User entry in both cron.allow and cron.deny

Hello All, Anybody please help me to know ,what happens when a user having entry in both cron.allow and cron.deny files.Wheather the user will be able to access the crontab??? Thanks in advance Vaisakh (5 Replies)
Discussion started by: ksvaisakh
5 Replies

7. Solaris

cron job starts new cron proccess

I run cron in solaris 10 zone. One cron job which syncing files to nfs mounted on container, creates after finishing another cron proccess(/usr/sbin/cron), and after 100 existing cron proccesses next cron job will not start. It's too weird for me, I'm not able to solve this problem. Theoretically... (3 Replies)
Discussion started by: ron76
3 Replies

8. UNIX for Dummies Questions & Answers

CRON usage for CRON job

can anybody explain the usage of CRON for adding a cron job. please provide an example also for better understanding !!! Thanks (1 Reply)
Discussion started by: skyineyes
1 Replies

9. AIX

AIX and cron logs filtering ?: /etc/cronlog.conf, /var/adm/cron/log

Hi, I can use 'crontabs –e' and do all the scheduling I like. However I would like to auto send myself just the cronjobs logs that fail. That is to say the PIDs that fail and the related lines with those PID’s only. (Not the full set of logs) Has anyone done this work? Or does an AIX 5.3 tool... (0 Replies)
Discussion started by: Keith Johnson
0 Replies

10. Shell Programming and Scripting

Conditional File Movement script scheduled using CRON job

Hi All, i am trying to automate a process and have to create a unix script like wise. I have a scenario in which i need to automate a file movement. Below are the steps i need to automate. 1. Check whether a file (Not Fixed name-Pattern search of file say 'E*.dat') is present in a... (2 Replies)
Discussion started by: imu
2 Replies
Login or Register to Ask a Question