[arch-releng] Get Mac Address for profiles - Proof of Concept

Jud jud at judfilm.net
Thu Apr 2 10:01:20 EDT 2009


On Wed, 1 Apr 2009 20:48:33 +0200
Dieter Plaetinck <dieter at plaetinck.be> wrote:

> On Thu, 2 Apr 2009 00:06:46 +1000
> Jud <jud at judfilm.net> wrote:
> 
> > Just to get the ball rolling. This script would be started by the
> > boot process outside of aif. Any ideas/comments welcome.
> > 
> > #!/bin/sh
> > # Proof of Concept
> bash (same as other mail)
> > 
> > # ToDo:
> > # Work backwards - test for wireless then wired
> > eth2/eth1/wlan1/wlan0/eth0 any others? # Make into function(s)?
> > # More Sanity Tests?
> > # Another layer - groups of mac address for a profile type -
> > profile:desktop01:<mac>,<mac>,<mac>
> > # How would the boot process call this script without interrupting
> > the possibility of a normal install?
> > 
> > # Get the MAC address for eth0
> > var=$(ifconfig -a | grep eth0)
> > 
> > # We only need the MAC Address
> > var=$(echo ${var: -19})
> cool. i never did such a -19 thing. how does this work?

Substring Extraction
9.2 in the Advanced Bash Scripting Guide

The command says keep the 19 characters from the right of the string.

I do have a problem with the string, it contains a space or tab at the
end. echo in the above command seems to remove it but without the echo
it remains and I need to add another line: var=${var// /}. No problem,
but was curious to know if there is a better way.

> you can do just var=${var: -19} btw
> > 
> > # Convert to be a filename for our purposes; Strip out ':'
> > var=$(echo ${var//:/})
> > 
> > # Make sure it is Hex aka within the MAC Address specs and ifconfig
> > output
> > if [[ $var =~ [[:xdigit:]] ]]; then
> >   echo "$var".profile
> > else
> >   echo "error"; exit 1
> > fi
> > 
> > # Check if file exists and is readable
> > if [ -r "$var.profile" ]; then
> > 
> > # Start Auto Install, when finished reboot
> > # Note: for auto-reboot the install drive should not be the primary
> > boot device 
> > aif -p automatic -c $var.profile && reboot
> > 
> > # End of File
> 
> Looking good! keep it up.
> Dieter

ok thanks, more to follow...


More information about the arch-releng mailing list