crontab vs. links in /etc/cron.hourly (etc.)
Scott Prive
Scott.Prive at storigen.com
Wed Jun 5 09:42:34 EDT 2002
I held back the script because I don't like to impose my scripts on people, and I had a pretty good hunch it was "something" to do with environment outside the script. But it looks like more information is needed so..
Basically script does a CVS checkout, tars it up and moves it to a normal user's http: directory.
1) By "working OK when run manually, I mean I get a tarball the right size - 5MB - and which tar can read back in. In other words, I run the script from a bash shell.
2) When it runs via a symlink in /etc/cron (I just ln -s the script to a point inside /etc/cron.hourly/), the script runs... I get an output file. But the "tarball" isn't a valid tar, and is 10k. I looked inside the file and it's just binary junk.
3) When we scheduled the script via a crontab entry, it runs OK (as in #1 exactly). I could accept that I "should" always use crontab and not link the cron dirs. BUT not knowing WHY the script flubbed up is like an itch you can't scratch. I guess it comes with working in SQA for 10 years. ;-)
And yeah, I know I didn't need to do this as root. Bad habit. It's a routinely dd-imaged box on a private LAN, so I'll just use root if I can.
Thanks,
-Scott
#!/bin/sh
# Abstract: An hourly cronjob to package the stest portion of CVS.
# Currently I am running this on "tower15" so the stest
# "install script" will have somewhere to fetch stest.tar from.
#
# Author: Scott Prive
#
# Depends: Requires prior CVS login under account running this script.
#
#Setup:
export CVSROOT=:pserver:qalab at bathtub:/var/cvsroot_generic
export CVSREAD=y
# temporarily rename tarball so we don't stomp on good version
export STEST='stest-dontuse-test.tar'
cd /root
#Clean it:
/bin/rm -rf stest
/bin/rm /sfs/qatest/$STEST
# Tar it:
/usr/bin/cvs co stest
/bin/tar cf /root/$STEST stest/
# Move it:
/bin/cp /root/$STEST /sfs/qatest/
# 0wn it
/bin/chown qatest:qatest /sfs/qatest/$STEST
-----Original Message-----
From: Nathan Meyers [mailto:nmeyers at javalinux.net]
Sent: Tuesday, June 04, 2002 6:37 PM
To: Scott Prive
Cc: BLU
Subject: Re: crontab vs. links in /etc/cron.hourly (etc.)
On Tue, Jun 04, 2002 at 06:11:02PM -0400, Scott Prive wrote:
> Hello,
>
> Could someone tell me why, if I create a crontab entry for my script (or run it manually), it will work OK... but it will not run properly if called via a symlink in /etc/cron.hourly.
>
> I chose not to post my script so as to not cloud the issue -- I have a solution.
>
> To rephrase, I'm asking why something running as root would behave differently than if called via a symlink in /etc/cron.whatever.
Different environment variables? Running as a different user? And what
does "work OK" mean - that it runs at all, that it has some expected
effects? What makes you think that posting the script would cloud the
issue? I think it might help explain the issue.
And could you explain your last sentence - I don't understand the
contrast between "running as root" and "called via a symlink"? Is the
script being run by root always, sometimes, or never?
Nathan Meyers
nmeyers at javalinux.net
More information about the Discuss
mailing list