====== Möglichkeiten der BASH-basierten CLI im AOS nutzen ======
Die CLI in AOS Release 7 ist BASH-basiert und bietet uns daher einige nette Skriptfähigkeiten die es bisher nicht gab.
Ein einfacher Einstieg ist folgendes ...
CLI-> for i in 1 5 ; do show interfaces 1/$i ; done
Slot/Port 1/1 :
Operational Status : down,
Last Time Link Changed : Thu Aug 1 17:29:01 2013,
Number of Status Change: 0,
Type : Ethernet,
SFP/XFP : NotPresent,
EPP : Disabled,
Link-Quality : UNKNOWN,
MAC address : e8:e7:32:11:ca:f4,
BandWidth (Megabits) : - , Duplex : -,
Autonegotiation : 0 [ ],
Long Frame Size(Bytes) : 9216,
Rx :
Bytes Received : 0, Unicast Frames : 0,
Broadcast Frames: 0, M-cast Frames : 0,
UnderSize Frames: 0, OverSize Frames: 0,
Lost Frames : 0, Error Frames : 0,
CRC Error Frames: 0, Alignments Err : 0,
Tx :
Bytes Xmitted : 0, Unicast Frames : 0,
Broadcast Frames: 0, M-cast Frames : 0,
UnderSize Frames: 0, OverSize Frames: 0,
Lost Frames : 0, Collided Frames: 0,
Error Frames : 0
Slot/Port 1/5 :
Operational Status : down,
Last Time Link Changed : Thu Aug 1 17:29:01 2013,
Number of Status Change: 0,
Type : Ethernet,
SFP/XFP : NotPresent,
EPP : Disabled,
Link-Quality : UNKNOWN,
MAC address : e8:e7:32:11:ca:f8,
BandWidth (Megabits) : - , Duplex : -,
Autonegotiation : 0 [ ],
Long Frame Size(Bytes) : 9216,
Rx :
Bytes Received : 0, Unicast Frames : 0,
Broadcast Frames: 0, M-cast Frames : 0,
UnderSize Frames: 0, OverSize Frames: 0,
Lost Frames : 0, Error Frames : 0,
CRC Error Frames: 0, Alignments Err : 0,
Tx :
Bytes Xmitted : 0, Unicast Frames : 0,
Broadcast Frames: 0, M-cast Frames : 0,
UnderSize Frames: 0, OverSize Frames: 0,
Lost Frames : 0, Collided Frames: 0,
Error Frames : 0
Ein komplexeres Beispiel könnte so aussehen ...
CLI-> function QuickLAG() { IFS="," ; echo "Willkommen zu QuickLAG" ; echo -n "Geben Sie die zu erstellende Link-Aggregation-ID an: " ; read lagid; echo -n "Geben Sie die Groesse der Link-Aggregation an (2,4,6,8,16): " ; read lagsize ; echo -n "Geben Sie die Ports, getrennt durch Komma an: " ; read -ra portlist ; linkagg lacp agg $lagid size $lagsize actor admin-key $lagid ; for i in "${portlist[@]}" ; do linkagg lacp port $i actor admin-key $lagid ; done ; echo "QuickLAG: Job ist erledigt ..." ; }
Auf der AOS-CLI erreicht man damit dann folgendes:
CLI-> QuickLAG
Willkommen zu QuickLAG
Geben Sie die zu erstellende Link-Aggregation-ID an: 12
Geben Sie die Groesse der Link-Aggregation an (2,4,6,8,16): 4
Geben Sie die Ports, getrennt durch Komma an: 1/1,1/2,1/4,1/6
QuickLAG: Job ist erledigt ...
CLI->
CLI-> show configuration snapshot linkagg
! Link Aggregate:
linkagg lacp agg 12 size 4 admin-state enable
linkagg lacp agg 12 actor admin-key 12
linkagg lacp port 1/1 actor admin-key 12
linkagg lacp port 1/2 actor admin-key 12
linkagg lacp port 1/4 actor admin-key 12
linkagg lacp port 1/6 actor admin-key 12
Um ein Kommando fortlaufend auszuführen, kann man folgenden Befehl nutzen:
CLI-> while [ TRUE ]; do show interfaces 1/1/1 status; sleep 1; done
Chas/ DETECTED-VALUES CONFIGURED-VALUES
Slot/ Admin Auto Speed Duplex Pause Speed Duplex Pause Link
Port Status Nego (Mbps) (Mbps) Trap EEE
--------+------+----+--------+------+-------+--------+------+-------+-----+---
1/1/1 en en - - - Auto Auto - dis dis
Chas/ DETECTED-VALUES CONFIGURED-VALUES
Slot/ Admin Auto Speed Duplex Pause Speed Duplex Pause Link
Port Status Nego (Mbps) (Mbps) Trap EEE
--------+------+----+--------+------+-------+--------+------+-------+-----+---
1/1/1 en en - - - Auto Auto - dis dis
Chas/ DETECTED-VALUES CONFIGURED-VALUES
Slot/ Admin Auto Speed Duplex Pause Speed Duplex Pause Link
Port Status Nego (Mbps) (Mbps) Trap EEE
--------+------+----+--------+------+-------+--------+------+-------+-----+---
1/1/1 en en - - - Auto Auto - dis dis
Chas/ DETECTED-VALUES CONFIGURED-VALUES
Slot/ Admin Auto Speed Duplex Pause Speed Duplex Pause Link
Port Status Nego (Mbps) (Mbps) Trap EEE
--------+------+----+--------+------+-------+--------+------+-------+-----+---
1/1/1 en en 1000 Full - Auto Auto - dis dis
Chas/ DETECTED-VALUES CONFIGURED-VALUES
Slot/ Admin Auto Speed Duplex Pause Speed Duplex Pause Link
Port Status Nego (Mbps) (Mbps) Trap EEE
--------+------+----+--------+------+-------+--------+------+-------+-----+---
1/1/1 en en 1000 Full - Auto Auto - dis dis
Die Ausführung kann mit STRG+C abgebrochen werden. Wenn man nur die betreffende Zeile ausgeben möchte, kann man folgenden Befehl nutzen:
CLI-> while [ TRUE ]; do show interfaces status | grep -w 1/1/1; sleep 1; done
1/1/1 en en - - - Auto Auto - dis dis
1/1/1 en en - - - Auto Auto - dis dis
1/1/1 en en - - - Auto Auto - dis dis
1/1/1 en en - - - Auto Auto - dis dis
1/1/1 en en 1000 Full - Auto Auto - dis dis
1/1/1 en en 1000 Full - Auto Auto - dis dis
1/1/1 en en 1000 Full - Auto Auto - dis dis