Volker Kuhlmann wrote:
On Sun 06 Apr 2008 10:21:20 NZST +1200, Roger Searle wrote:

When run from the command line, they execute fine and I get the expected file sizes of several hundred MB or a GB. When run from cron, they consistently create tar files of around 5 or 10 kb.

The cause of this sort of problem is almost always the same: When you
loig in interactively, you get a fully set up login shell and
environment. When cron runs a command, it switches to the correct user
ID but barely sets up 5 environment variables. The execution environment
of your programs from within cron is different to your interactive one.

To investigate, run the command env from inside a script which is run by
cron, and redirect its output to a file. Compare with what you get
interactively. Pay special attention to PATH.

Volker
My user PATH:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

The cron environment PATH:
PATH=/usr/bin:/bin

Also:
[EMAIL PROTECTED]:~$ whereis tar
tar: /bin/tar

So tar is covered by either PATH. However the following script will NOT run via cron: /bin/tar -czvf /media/backup/backup-home-`date +%a-%d-%m-%y`.tgz /home/roger

(the tgz file is created, but is always 9 or 10kb)

Perhaps that is because the shebang at the top of the script is:
#!/bin/bash

and cron's environment has:
SHELL=/bin/sh

but changing the shebang to #!/bin/sh does not get the script running via cron. Can anyone suggest what I need to do?

Cheers,
Roger



Reply via email to