Benutzer-Werkzeuge

Webseiten-Werkzeuge


aos_bash

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
aos_bash.txt · Zuletzt geändert: 2016/09/30 10:49 von michael