In the .profile
file of the root
user I have defined a function, e.g.
function printDate() {
date
}
I want to run this function every minute and append the output to cron.log. I tried adding the following crontab entry:
* * * * * printDate > $HOME/cron.log 2>&1
But it doesn't work. The cron.log
file gets created, but it's empty. I guess this is because the .profile
isn't read by cron, so any functions/aliases defined therein are unavailable to it. So I tried changing the crontab entry to:
* * * * * source $HOME/.profile;printDate >> $HOME/cron.log 2>&1
But this doesn't work either. It seems cron still doesn't have access to the printDate
function because I see the following in cron.log
/bin/sh: printDate: not found
source $HOME/.profile; printDate > $HOME/cron.log 2>&1
should do it :) – SirCharlo Apr 3 '12 at 12:39cron.log
or overwrite it? – Dónal Apr 3 '12 at 16:42>
operator overwrites; the>>
operator appends.. Sorry, I had missed that part of your post. So it should be:source $HOME/.profile; printDate >> $HOME/cron.log 2>&1
– SirCharlo Apr 3 '12 at 16:44