[GRLUG] crontab not running a working script

Michael Mol mikemol at gmail.com
Thu Jan 12 12:28:55 EST 2012


Bob Kline wrote:
> 
> 
> On Thu, Jan 12, 2012 at 12:13 PM, John-Thomas Richards
> <jtr at jrichards.org <mailto:jtr at jrichards.org>> wrote:
> 
>     On Thu, Jan 12, 2012 at 12:04:17PM -0500, Ben Rousch wrote:
>     > On Thu, Jan 12, 2012 at 11:47 AM, John-Thomas Richards
>     > <jtr at jrichards.org <mailto:jtr at jrichards.org>> wrote:
>     > > I sync my box to memotoo.com <http://memotoo.com>'s service.
>      Works from the commandline with
>     > > `syncevolution memotoo'.  The password is in the config files so
>     when I
>     > > enter the above command, it syncs, then I'm back to a command
>     prompt.  I
>     > > can take that command and put it in a simple bash script:
>     > >
>     > >        #!/bin/bash
>     > >        syncevolution memotoo
>     > >
>     > >
>     > > It works as expected; no further input is needed.  However, when
>     I put
>     > > that script into my crontab, I get this error message:
>     > >
>     > >        Enter password for memotoo: [ERROR] error code from
>     > >        SyncEvolution fatal error (local, status 10500): could
>     not read
>     > >        password for memotoo
>     > >
>     > >        Synchronization failed, see
>     > >      
>      /home/jtr/.cache/syncevolution/memotoo-2012-01-12-11-38/syncevolution-log.html
>     > >        for details.
>     > >
>     > > The error log simply repeats that it could not read the password.
>     > >
>     > > My scripting skills are limited; am I missing something?  If it
>     works
>     > > from a commandline should it not also work from cron?
>     >
>     > Cron uses different paths than a normal user. To avoid problems with
>     > this you should specify the full path to all executables and files in
>     > a cron job. You'll likely have to tell the program exactly where the
>     > config file is located.
> 
>     Is this true even when the command in cron is a bash script?  The line
>     in crontab is:
> 
>     1 23 * * * /home/jtr/bin/syncmemotoo
> 
>     It runs every night at 11:00PM. 
> 
> 
> But does your script need your environment?
> The absolute path gets your script, but under
> what environment does cron run it?  
> 
> The crontab(1) points out that a user can have
> their own crontab file, but seems a little vague
> about whether that implies anything about the
> user's own environment.
> 
> Can you direct any error messages when
> the command is run to yourself?

By default, cron emails the output of commands to the user the command
was run as, or root if it's a system cron job.

So, the output of the command should be in his inbox.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the grlug mailing list