Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Oct 2006 08:48:05 -0400
From:      Jonathan Arnold <jdarnold@buddydog.org>
To:        freebsd-questions@freebsd.org
Subject:   Re: system crontab
Message-ID:  <ehsv65$tf9$1@sea.gmane.org>
In-Reply-To: <20061027123200.P71098@192.168.11.51>
References:  <20061027123200.P71098@192.168.11.51>

next in thread | previous in thread | raw e-mail | index | archive | help
Zbigniew Szalbot wrote:
> Hello,
> 
> I would like to daily run a certain script that cleans exim's queue from 
> frozen messages:
> 
> sudo exiqgrep -i -z | sudo xargs -L 1 exim -Mrm
> 
> I have created a file called rm_frozen_msg.sh, gave it appropriate 
> permissions and then installed it in my user crontab. Because it did not 
> work I read the man and found out that I cannot run scripts as another 
> (root) user. Therefore I edited /etc/crontab to instruct it to run the 
> file daily.

You shouldn't really edit /etc/crontab.  Just add the job as the user root:

$ sudo crontab -u root -e

> At first, it did not like sudo. As I was running it under user root 
> anyway, I deleted sudo from the file. Then it complained about exiqgrep 
> so I put the full path: /usr/local/sbin/

And yes, the crontab is quite finicky when it comes to paths. Do a man on
it to read more:

$ man 5 crontab

> But my question is why can I run the command
> 
> sudo exiqgrep -i -z | sudo xargs -L 1 exim -Mrm
> 
> from the command line but I cannot use it in a file with cron?

Well, for one thing, sudo can ask for a password, and you won't be around
to give it. For another, you'll need to give it the full path to sudo, or
it won't even find it. And it won't find the other parts either. So you're
just better off adding a root crontab job rather than hoping all these suod's
will work.

-- 
Jonathan Arnold     (mailto:jdarnold@buddydog.org)
Daemon Dancing in the Dark, a FreeBSD weblog:
     http://freebsd.amazingdev.com/blog/

UNIX is user-friendly. It's just a bit picky about who its friends are.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ehsv65$tf9$1>