Imprime o endereço mac para o arquivo

8

Com um script bash, posso ler o endereço mac da minha eth0 e imprimi-lo em um arquivo?

    
por michelemarcon 18.04.2011 / 17:17

3 respostas

13

ifconfig gerará informações sobre suas interfaces, incluindo o endereço MAC:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:289748093 errors:0 dropped:0 overruns:0 frame:0
          TX packets:232688719 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3264330708 (3.0 GiB)  TX bytes:4137701627 (3.8 GiB)
          Interrupt:17 

O HWaddr é o que você quer, então você pode usar awk para filtrá-lo:

$ ifconfig eth0 | awk '/HWaddr/ {print $NF}'
00:11:22:33:44:55

Redirecionar isso para um arquivo:

$ ifconfig eth0 | awk '/HWaddr/ {print $NF}' > filename
    
por 18.04.2011 / 17:35
7

Aqui está um método moderno do Linux:

ip -o link show dev eth0 | grep -Po 'ether \K[^ ]*'

É moderno que ifconfig tenha sido preterido em favor de ip do iproute2 package, e que grep tem a opção -P para expressões regulares perl para o asserção de look-behind positiva de largura zero .

grep -o é bom para extração de texto. sed é tradicionalmente usado para isso, mas eu acho as asserções de largura zero de estilo perl mais claras do que um comando de substituição de sed.

Na verdade, você não precisa da opção -o (oneline) para ip , mas eu prefiro usá-la ao extrair informações de rede, pois acho mais limpo ter um registro por linha. Se você estiver realizando correspondências ou extrações mais complicadas (geralmente com awk ), -o é essencial para um script limpo, portanto, para manter a consistência e um padrão comum, eu sempre uso.

    
por 19.04.2011 / 14:33
5
#! /bin/sh

/sbin/ifconfig eth0 | perl -ne 'print "$1\n" if /HWaddr\s+(\S+)/' >file

Existem outras ferramentas que poderiam cortar o endereço MAC da saída de ifconfig , é claro. Eu apenas gosto de Perl.

    
por 18.04.2011 / 17:32