From owner-freebsd-questions@FreeBSD.ORG Tue Jul 21 16:10:00 2009 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 DA3B9106566C for ; Tue, 21 Jul 2009 16:10:00 +0000 (UTC) (envelope-from jerrymc@gizmo.acns.msu.edu) Received: from gizmo.acns.msu.edu (gizmo.acns.msu.edu [35.8.1.43]) by mx1.freebsd.org (Postfix) with ESMTP id 9B01D8FC0A for ; Tue, 21 Jul 2009 16:10:00 +0000 (UTC) (envelope-from jerrymc@gizmo.acns.msu.edu) Received: from gizmo.acns.msu.edu (localhost [127.0.0.1]) by gizmo.acns.msu.edu (8.13.6/8.13.6) with ESMTP id n6LG8IrO004099; Tue, 21 Jul 2009 12:08:18 -0400 (EDT) (envelope-from jerrymc@gizmo.acns.msu.edu) Received: (from jerrymc@localhost) by gizmo.acns.msu.edu (8.13.6/8.13.6/Submit) id n6LG8Ieo004098; Tue, 21 Jul 2009 12:08:18 -0400 (EDT) (envelope-from jerrymc) Date: Tue, 21 Jul 2009 12:08:18 -0400 From: Jerry McAllister To: chris scott Message-ID: <20090721160818.GA4054@gizmo.acns.msu.edu> References: <20090721112920.c174849b.freebsd@edvax.de> <87ljmi1dyq.fsf@kobe.laptop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.2i Cc: freebsd-questions@freebsd.org Subject: Re: backticks in rc.conf 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: Tue, 21 Jul 2009 16:10:01 -0000 On Tue, Jul 21, 2009 at 12:24:09PM +0100, chris scott wrote: > 2009/7/21 Giorgos Keramidas > > > On Tue, 21 Jul 2009 11:29:20 +0200, Polytropon wrote: > > > On Tue, 21 Jul 2009 09:46:47 +0100, chris scott > > wrote: > > >> can i use backticks in rc.conf? > > > > > > Basically, yes. The /etc/rc.conf file is run through sh, it is > > > a shell script that assigns values to variables, but can (ab)use > > > it to execute programs. > > > > > >> rsyncd_flags="--config=/etc/rsyncd.conf --address="` ifconfig bce1 | > > grep > > >> inet | awk '{print $2}'` > > >> > > >> it works fine from the shell, however on reboot the address section > > doesnt > > >> expand, or rather it goes blank > > > > > > You should use the full pathnames leading to ifconfig, grep, and awk. > > > Make sure they are accessible when rc.conf is "executed". > > > > There's a catch here that may go unnoticed for a while... > > > > rc.conf may be sourced by /etc/rc *long* before filesystems are > > mounted. As a result grep or awk may be not be available and stop > > rc.conf from loading. > > > > It's probably a good idea to: > > > > * Add a special rsyncd_bind_address variable that is handled in > > `/usr/local/etc/rc.d/rsyncd' itself > > > > * Permit "AUTO" as the value of ${rsyncd_bind_address} and do the > > smart thing there. > > > > * Edit `/usr/local/etc/rc.d/rsyncd' to add a dependency for the > > "NETWORKING" and "FILESYSTEMS" special names, so that `rc.d/rsyncd' > > runs only after networking is up and /usr or other late-mounted > > filesystems have finished loading. > > > > thanks for the advice but I've found a solution (see below). > > My systems dont generally have a /usr slice as i like to keep all the os in > one place, having a slice for /usr/local. /var, /home, and /tmp so the late > fs isnt an issue for me. Probably you mean a /usr partition - which is a division of a slice. Generally, since there are only 4 slices available, they are not used to divide the disk for mountable file systems, but rather are used for major divisions such as if you have more than one OS sharing the disk. The the FreeBSD slice can be further divided into partitions. Note, that confusion occurs here often as MS uses the terminology differently. The primary divisions that FreeBSD calls slices, they call primary partitions. ////jerry > > My latest test builds are pure zfs so wont be an issue there either 8) > > a=`echo $ifconfig_bge0 | /usr/bin/awk '{ for ( i=1 ; i <= NF; i++) { if ( $i > ~ /[iI][nN][eE][tT]/ ) { sub(/\/.*/,"", $(i+1)); print $(i+1) } } }'` > rsyncd_flags="--config=/etc/rsyncd.conf --address=$a" > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"