From owner-freebsd-questions@FreeBSD.ORG Wed Dec 5 12:17:10 2007 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B89216A468 for ; Wed, 5 Dec 2007 12:17:10 +0000 (UTC) (envelope-from pjn0211@hotmail.com) Received: from bay0-omc1-s29.bay0.hotmail.com (bay0-omc1-s29.bay0.hotmail.com [65.54.246.101]) by mx1.freebsd.org (Postfix) with ESMTP id 44B4313C45A for ; Wed, 5 Dec 2007 12:17:10 +0000 (UTC) (envelope-from pjn0211@hotmail.com) Received: from BAY102-W32 ([64.4.61.132]) by bay0-omc1-s29.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 5 Dec 2007 04:17:10 -0800 Message-ID: X-Originating-IP: [124.121.96.173] From: Supote Leelasuppakorn To: Date: Wed, 5 Dec 2007 19:17:10 +0700 Importance: Normal In-Reply-To: References: Content-Type: text/plain; charset="windows-874" Content-Transfer-Encoding: 8bit MIME-Version: 1.0 X-OriginalArrivalTime: 05 Dec 2007 12:17:10.0064 (UTC) FILETIME=[C27BAB00:01C83738] Subject: Re: Shell script in crontab cannot write files into FreeBSD's filesystem. (2nd evised version) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2007 12:17:10 -0000 Hi list, Thanks, Derek. You're right. The date command must be the absulute path. Now it works. Thanks for your best answer. Pote > >>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 > >