Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Dec 2007 05:57:47 -0600
From:      Derek Ragona <derek@computinginnovations.com>
To:        Supote Leelasuppakorn <pjn0211@hotmail.com>, <freebsd-questions@freebsd.org>
Subject:   Re: Shell script in crontab cannot write files into FreeBSD's filesystem. (2nd evised version)
Message-ID:  <6.0.0.22.2.20071205055038.02503490@mail.computinginnovations.com>
In-Reply-To: <BAY102-W11B5E42ACC7E6D82E3D6C0B96E0@phx.gbl>
References:  <BAY102-W11B5E42ACC7E6D82E3D6C0B96E0@phx.gbl>

next in thread | previous in thread | raw e-mail | index | archive | help
At 03:02 AM 12/5/2007, Supote Leelasuppakorn wrote:



>Hi all,
>
>    Please anybody help me, I faced the problem with my "crontab".
>I tried to run a shell script which will fetch webpage and save it to
>a directory by using wget but after few minute I cannot see any file
>in such directory
>
>    Below are content of shell script, my crontab and also
>file's permission listing.
>
>##########################
># Output of `crontab -l`
>##########################
>SHELL=/bin/sh
>MAILTO=pjn
>* * * * * . /home/pjn/parseGP/fetchPage.sh
>
>
>########################
># file: fetchPage.sh
>########################
>#!/bin/sh
>TIMESTAMP=`date "+%Y%m%d-%H%M%S"`

You are assuming that date is in your path by the above statement.  Never 
assume you have a good path, unless you set it in your script file.  So, 
either setup the path you need or use absolute pathnames such as:
TIMESTAMP=`/bin/date "+%Y%m%d-%H%M%S"`


>LOGPATH="/home/pjn/parseGP/logs"
>/usr/local/bin/wget --no-cache -a ${LOGPATH}/fetch.log -O 
>${LOGPATH}/${TIMESTAMP}.html http://www.blahblah.com
>
>
>########################
># Files' permission
>########################
>blahHost$
>blahHost$ls -ltrd parseGP
>drwxr-xr-x 3 pjn pjn 512 Dec 5 14:27 parseGP
>blahHost$ls -ltr parseGP/
>total 4
>drwxr-xr-x 2 pjn pjn 512 Dec 5 15:11 logs
>-rwxr--r-- 1 pjn pjn 226 Dec 5 15:21 fetchPage.sh
>blahHost$ls -ltr parseGP/logs/
>total 0
>-rw-r--r-- 1 pjn pjn 0 Dec 5 15:14 fetch.log
>blahHost$
>
>
>
>TIA
>Pote

Make sure your script runs correctly outside cron, then test it from inside 
cron.  Add some echo statements so you can see what is executed, such as:
#!/bin/sh
TIMESTAMP=`/bin/date "+%Y%m%d-%H%M%S"`
LOGPATH="/home/pjn/parseGP/logs"
echo $(TIMESTAMP)
echo $(LOGPATH)
echo /usr/local/bin/wget --no-cache -a ${LOGPATH}/fetch.log -O
/usr/local/bin/wget --no-cache -a ${LOGPATH}/fetch.log -O
echo ${LOGPATH}/${TIMESTAMP}.html http://www.blahblah.com
${LOGPATH}/${TIMESTAMP}.html http://www.blahblah.com

         -Derek

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




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