現在、監査目的で cisco 構成からレポートを生成するスクリプトを作成しています。「grep」コマンドを使用して、グローバル構成を正常にキャプチャできました。
しかし、課題はインターフェイスごとに行うことです。たとえば、どのインターフェイスに「no ip redirects」、「no ip unreachables」などの行があるか知りたいのですが、bash でこれを達成するにはどうすればよいですか?
前もって感謝します!
これは では簡単に実行できませんがgrep
、次のようにawk
処理します。
cat file
!
interface GigabitEthernet0/13
description Server_32_main
spanning-tree portfast
no ip redirects
!
interface GigabitEthernet0/14
description Server_32_log
switchport access vlan 666
spanning-tree portfast
!
interface GigabitEthernet0/15
description UPS_20
spanning-tree portfast
!
ご覧のとおり、各グループは で区切られて!
いるので、それを使用して各レコードを区切ります。
インターフェイス名のみを取得するには、次のようにします。
awk -v RS="!" -F"\n" '/no ip redirects/ {print $2}' file
interface GigabitEthernet0/13
インターフェイス構成を取得するには、次のようにします。
awk -v RS="!" '/no ip redirects/' file
interface GigabitEthernet0/13
description Server_32_main
spanning-tree portfast
no ip redirects
一度に複数のパターンを取得するには:
awk -v RS="!" '/no ip redirects/ || /no ip unreachables/' file