System Administration
cancel
Showing results for 
Search instead for 
Did you mean: 

$(date +%d%m%y) in CRON JOBS

 
arkie
Super Advisor

$(date +%d%m%y) in CRON JOBS

Hi All,

Want to check on the growth of a particular file. Last week - this file ($ORACLE_HOME/network/log/listener.log) led to a FS full situation and subsequently SAP users were unable to log in to the system.

I have added a cronjob to record the file size at a regular interval (for testing - at 1 min interval now ... later will try to tap at say 7 pm day end)

The "crontab -l" output is :-

* * * * * ll /oracle/N11/920_64/network/log/listener.log > /tmp/listmon/listener_$(date +%d%m%y).out

My idea was to create a new file at the end of the specified interval to hold the output. But, the output file was created as ...

listener_

and the content is getting overwritten every time.

My query is - why is the $(date +%d%m%y) part not working ?
5 REPLIES
Raj D.
Honored Contributor

Re: $(date +%d%m%y) in CRON JOBS

Arkie,


Check this out:

1. Test it:
# DATE="`date +%H%M.%m%d%y`"
# touch file.$DATE




2.Use in crontab:
So the crontab would be like below:,


* * * * * ll /oracle/N11/920_64/network/log/listener.log > /tmp/listmon/listener_`date +%H%M.%m%d%y`.out




Cheers,
Raj.
" If u think u can , If u think u cannot , - You are always Right . "
R.O.
Esteemed Contributor

Re: $(date +%d%m%y) in CRON JOBS

Hi,

You can create a script like this:

#!/bin/sh
DATE=$(/sbin/date +%d%m%y)
ll /oracle/N11/920_64/network/log/listener.log > /tmp/listmon/listener_$DATE.out

Give execution permission to the script and execute the script through cron.

Regards,
"When you look into an abyss, the abyss also looks into you"

Re: $(date +%d%m%y) in CRON JOBS

>why is the $(date +%d%m%y) part not working?

% is a special char to crontab, it is a line break char. You need to quote each one, "\".
TwoProc
Honored Contributor

Re: $(date +%d%m%y) in CRON JOBS

Another possible: When running a script in cron - not much of the environment is set. There is a good chance that "date" is not in the path of the shell that is being run.
Therefore, add the full path to the beginning of the date command:
ex: $(/usr/bin/date
instead of
$(date

I don't know the full path to the data command, and the example above is just a guess, you'll have to figure out where the date command actually lives.

We are the people our parents warned us about --Jimmy Buffett

Re: $(date +%d%m%y) in CRON JOBS

>John: There is a good chance that "date" is not in the path of the shell that is being run.

No, date(1) is in the default path:
PATH=/usr/bin:/usr/sbin:.