[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cron and command quote



On Sun, 16 Mar 2008 06:48:19 +0100, NN_il_Confusionario wrote:

>> >> * * * * *	root	ps -eaf | grep -E 'cdrecord.* -[dts]ao |cdrdao
>> >> *write|growisofs.*speed=' > /dev/null || logger get executed.
>> >> PS. I'm sure the PATH is setup properly in my cron, so cron can find ps
>> >> & grep.
> 
> You could, for debugging pourposes:
> * look at mails that cron sends if a commnd give any output;
> * replace temporarilly the command with
>   set -x;echo $PATH;which ps;which grep;which find;which logger;ps -eaf | grep -E ...
> * replace the command with a shell script which executes the command in a shell
>   with set -x and/or other shell debugging options; for example also
>   temporarilly drop redirection to /dev/null

Thanks a lot. With your suggestion, I found the reason -- it is as people
(e.g. Raj) have suspected, it's problem of cron and quotes. 

Here is the execute log:

 Mar 17 17:28:01 cxmr /USR/SBIN/CRON[26757]: (root) CMD (set -x;which ps;which grep;ps -eaf | grep -E 'cdrecord.* -[dts]ao |cdrdao *write|growisofs.*speed=' || logger get executed.)

The mail that I got says:

 + which ps
 /bin/ps
 + which grep
 /bin/grep
 + ps -eaf
 + grep -E 'cdrecord.* -[dts]ao |cdrdao *write|growisofs.*speed='
 root     26757 26756  0 17:28 ?        00:00:00 /bin/sh -c set -x;which ps;which grep;ps -eaf | grep -E 'cdrecord.* -[dts]ao |cdrdao *write|growisofs.*speed=' || logger get executed.
 root     26761 26757  0 17:28 ?        00:00:00 grep -E cdrecord.* -[dts]ao |cdrdao *write|growisofs.*speed=

I.e., somehow, the 'ps | grep' was able to find something in cron, whereas
when executed directly under shell:

 $ ps -eaf | grep -E 'cdrecord.* -[dts]ao |cdrdao *write|growisofs.*speed='

 $ /bin/sh -c "ps -eaf | grep -E 'cdrecord.* -[dts]ao |cdrdao *write|growisofs.*speed='"

I.e., if the same command are executed directly under shell the 
'ps | grep' finds nothing. 

Anyone can give some explanation?

Thanks

-- 
Tong (remove underscore(s) to reply)
  http://xpt.sourceforge.net/techdocs/
  http://xpt.sourceforge.net/tools/


Reply to: