From owner-freebsd-questions@FreeBSD.ORG Thu Aug 26 08:09:11 2004 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DCB6116A4CE for ; Thu, 26 Aug 2004 08:09:10 +0000 (GMT) Received: from smtp810.mail.sc5.yahoo.com (smtp810.mail.sc5.yahoo.com [66.163.170.80]) by mx1.FreeBSD.org (Postfix) with SMTP id 9DEAE43D1D for ; Thu, 26 Aug 2004 08:09:10 +0000 (GMT) (envelope-from krinklyfig@spymac.com) Received: from unknown (HELO smogmonster.com) (jtinnin@pacbell.net@64.171.1.210 with login) by smtp810.mail.sc5.yahoo.com with SMTP; 26 Aug 2004 08:09:10 -0000 From: Joshua Tinnin To: freebsd-questions@freebsd.org Date: Thu, 26 Aug 2004 01:09:12 -0700 User-Agent: KMail/1.6.2 References: <200408260007.26659.krinklyfig@spymac.com> <20040826034220.65118714@localhost> In-Reply-To: <20040826034220.65118714@localhost> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200408260109.12229.krinklyfig@spymac.com> Subject: Re: crontab question involving cvsup X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: krinklyfig@spymac.com List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Aug 2004 08:09:11 -0000 On Thursday 26 August 2004 12:42 am, epilogue wrote: > On Thu, 26 Aug 2004 00:07:26 -0700 > > Joshua Tinnin wrote: > > OK, I have searched the archives, and I can't find that my question > > has been answered previously, but please forgive me if that's > > incorrect. > > > > I'm using (or rather trying to use) cron to update my ports tree > > daily. I've tried several different combinations without success, > > and lately this is what I have in my crontab file: > > > > /usr/local/bin/cvsup -g -L 2 > > /home/krinklyfig/supfiles/ports-supfile && /usr/local/bin/portindex > > && /usr/local/sbin/portsdb -u > > > > It runs as root once a day. What appears to be happening is that > > the cvsup is happening, but portindex is not, and because of the > > latter portsdb -u doesn't either. The reason I know cvsup is > > working is because portindex indicates that the ports tree has been > > updated if I run it manually later, but running portversion before > > manually running portindex will not indicate any changes. The cron > > log doesn't show anything but the commands being executed. So, my > > question is: is this type of command valid, or should each command > > be separate? Or is it not working for some other reason? > > man cron gives: > > crontab [-u user] file > > 'file' being the important part, methinks. ;) I'm not sure what you mean ... If you're wondering, I'm using the main crontab file (/etc/crontab), as right now there's no need for me to use multiple ones. > what you might want to do, is simply write a shell script and feed > that into your crontab. in case you're not sure how to make a > script, it is very simple and google will return many tutorials. I had considered this, and eventually would like to do so, as I'd like to add the output of fastest_cvsup to the server listed in the supfile. > in a nutshell, you put the commands you want into a file, make that > file executable (chmod), and away you go. > > the first line of a shell script has an obligatory format and invokes > the shell that will be used. > > #!/bin/sh << the leading # is required > /usr/local/bin/cvsup -L 2 /foo/path/to/your/ports-supfile; > # comments are allowed > portindex; > exit Is verbosity of -L 2 allowed in a script without output? IOW, should that first line be: /usr/local/bin/cvsup -L 2 /path/to/supfile > /dev/null 2>&1; Or does it matter if the output has nowhere to go? > note: you might also prefer to end commands with && rather than ; > > i'm new to scripting myself so please forgive my feeble explanation. I'm pretty new to scripting as well. Does ; allow the next line to run, even if the previous one didn't, as opposed to && which would only allow the next line to run if the previous one was successful? (This would be similar to how a one-line command works outside a script.) > about the commands which you are planning to include, why the > 'portsdb -u'? is that not doing essentially the same work as > 'portindex' ? > > (http://www.freshports.org/sysutils/portindex/) No, portindex doesn't update the database. The command portsdb -U generates an INDEX, which is what portindex does (although portindex does it faster), while portsdb -u generates the INDEX.db from the ports INDEX file. However, the database is generated automatically if need be when it's looked up, so it's not necessary - man portsdb mentions this - but I like to have my ducks in a row, so to speak ;) > anyhow. hope this helps. Yes, it has me thinking I should probably start testing out a script, but it will include a bit more than just cvsup'ping, updating the INDEX and database. Thanks. - jt