====== 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