On Tue, 2004-02-03 at 07:46, Adam Aube wrote: > On Tuesday 03 February 2004 04:42 am, Chris Eisley wrote: > > The problem is that when I put the mapping entry in, ifup gives the > > error "Ignoring unknown interface eth0=eth0." > > Have you tried manually running "ifup -v eth0"? If so, what was the > output? >
Did just now; What I get is: Running mapping script /etc/network/show-role.sh -q -l on eth0 Ignoring unknown interface eth0=eth0. > > The script I designate in the script line of the mapping stanza is never > > being executed > > How do you know? > I put the following in the script as the first line of execution: echo 1 > '/etc/network/blah' And the test file wasn't created; it was if I ran the script myself. Here are the contents of the script, which has 755 perms and root:root ownership: #!/bin/sh PATH="/bin:/sbin:/usr/bin:/usr/sbin" OUTPUT=terminal ROLE_FILE=/etc/network/roles function print_usage() { if [ "$1" ] then echo $1 fi cat <<EOF Usage: role.sh -l IFACE List or set the role of a single interface or all interfaces. Options -l IFACE List the role data for interface IFACE. The special interface \`all' will show all interface data. -q Used in conjunction with -l. Make only minimal output of a kind recognized by ifup/ifdown according to the mapping stanzas of the /etc/network/interfaces files. -h Show this help document. Currently list is the only action implemented. The role file is located at $ROLE_FILE EOF exit 1 } while getopts ":l:qh" ARG do if [ $ARG = '?' ] then print_usage "Invalid option: $OPTARG" elif [ $ARG = 'l' ] then ACTION=list IFACE="$OPTARG" elif [ $ARG = 'q' ] then OUTPUT=script elif [ $ARG = 'h' ] then print_usage fi done if [ "$OPTARG" = 'l' ] then print_usage "Interface argument for -l missing" fi if [ -z $ACTION ] then print_usage "You must specify an action" fi if [ $ACTION = 'list' ] then if ! [ -r $ROLE_FILE ] then echo "Error: Role file $ROLE_FILE doesn't exist or isn't readable" >&2 exit 1 fi for l in `cat $ROLE_FILE` do CURRENT_IFACE=`echo "$l" | cut -d':' -f1` POSITION=`echo "$l" | cut -d':' -f2` NETWORK=`echo "$l" | cut -d':' -f3` if [ -z $CURRENT_IFACE ] || [ -z $POSITION ] then echo "Error: Unable to parse role file $ROLE_FILE" >&2 exit 1 elif [ $IFACE = 'all' ] || [ $CURRENT_IFACE = $IFACE ] then IFACE_FOUND=1 if [ $OUTPUT = 'terminal' ] then echo -n "$CURRENT_IFACE: $POSITION interface" if [ $NETWORK ] then echo " for $NETWORK" fi else echo -n "$POSITION" if [ $NETWORK ] then echo -n "-$NETWORK" fi fi fi done if [ -z $IFACE_FOUND ] then echo "Error: No entry for interface "$IFACE" in role file $ROLE_FILE" >&2 exit 1 fi fi The /etc/network/roles files contains: eth0:INTERNAL:CEPHEUS wlan0:EXTERNAL ppp0:DISABLED When I run the role script as /etc/network/show-roles.sh -q -l eth0", "INTERNAL-CEPHEUS" is the output. Thanks for taking a look. -- Chris Eisley <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]