man/network
man · Ağ

$ mib2c

Bölüm 1 ·

mib2c -- aracıyı genişletmek için şablon kod üretir

Söz Dizimi

       mib2c [-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][-s][-q][-S VAR=VAL] MIBNODE

Açıklama

mib2c aracı, MIB ağacının bir bölümünü (bir MIB dosyası tarafından tanımlandığı şekilde) almak ve içindeki ilgili yönetim nesnelerini uygulamak için gerekli olan şablon C kodunu üretmek üzere tasarlanmıştır.

Yeni bir MIB modülü uygulamak için üç dosya gereklidir:

  • MIB tanımlama dosyası
  • C başlık dosyası
  • C uygulama dosyası.

mib2c aracı, iki C kodu dosyasını üretmek için MIB tanımlama dosyasını kullanır. Böylece mib2c, modülü tamamlamak amacıyla işletim sisteminden veya uygulamadan bilgi almak için gerekli mantığı eklemek üzere düzenleyebileceğiniz bir şablon oluşturur.

MIBNODE, kodunu üretmek istediğiniz en üst düzey mib düğümüdür. Komut satırında mib2c'ye bir mib dosyası değil, bir mib düğümü (örneğin ifTable) vermelisiniz. Bu, yapılan en yaygın hatadır.

mib2c aracı, hem SMIv1 hem de SMIv2 MIB'lerini kabul eder.

mib2c'nin MIB için C kodu üretebilmesi için bir MIB dosyasını bulabilmesi ve yükleyebilmesi gerekir. mib2c'nin MIB dosyasını bulmasını sağlamak için MIBS ortam değişkenini kullandığınız MIB dosyasını içerecek şekilde ayarlayın. Bu ortam değişkenini ayarlamaya yönelik bir örnek şöyledir:

MIBS=+NET-SNMP-TUTORIAL-MIB

veya

MIBS=ALL

İlk örnek, mib2c'nin varsayılan MIB modüllerine ek olarak NET-SNMP-TUTORIAL-MIB mib dosyasını da bulmasını sağlar. Varsayılan MIB modülleri listesi, paket ilk kez yapılandırıldığında ve derlendiğinde belirlenir ve temelde aracının desteklediği modüllerin listesine karşılık gelir. İkinci örnek, mib2c'nin MIB dosyaları arama konumundaki tüm MIB'leri bulmasını sağlar. MIB dosyaları için varsayılan arama konumu /usr/share/snmp/mibs dizinidir. Bu arama konumu MIBDIRS ortam değişkeni ile değiştirilebilir.

Hem yüklenecek MIB dosyaları hem de MIB dosyası arama konumu snmp.conf dosyasında da yapılandırılabilir. Daha fazla bilgi için lütfen snmp.conf(5) sayfasına bakın.

Üretilen *.c ve *.h dosyaları mevcut çalışma dizininde oluşturulacaktır.

Seçenekler

  • -h: Bir yardım mesajı görüntüler.

-c CONFIGFILE Kod üretirken CONFIGFILE yapılandırma dosyasını kullanır. Bu dosyalar ilk olarak mevcut dizinde, ardından /usr/share dizininde (varsayılan mib2c yapılandırma dosyalarının bulunduğu yerdir) aranır. mib2c'yi -c CONFIGFILE seçeneği olmadan çalıştırmak, CONFIGFILE için geçerli değerlerin bir açıklamasını, yani kendi yazabileceğiniz yenileri de dahil olmak üzere mevcut yapılandırma dosyalarını görüntüler.

Örneğin,

% mib2c ifTable

CONFIGFILE için şu anda kullanılabilir olan değerlerin bir açıklamasını görüntüleyecektir.

CONFIGFILE için aşağıdaki değerler desteklenir:

mib2c.mfd.conf mib2c.scalar.conf mib2c.int_watch.conf mib2c.iterate.conf mib2c.create-dataset.conf mib2c.array-user.conf mib2c.column_defines.conf mib2c.column_enums.conf

SKALAR (SCALAR) NESNELER İÇİN KOD ÜRETME:

Bazı skalar nesneler için kod yazıyorsanız, şunu çalıştırın:

mib2c -c mib2c.scalar.conf MIBNODE

Tam sayı değişkenlerini tam sayı skalar nesnelerine sihirli bir şekilde "bağlamak" istiyorsanız, şunu kullanın:

mib2c -c mib2c.int_watch.conf MIBNODE

TABLOLAR İÇİN KOD ÜRETME:

Tablolar için önerilen yapılandırma dosyası MIBs for Dummies veya MFD yapılandırma dosyasıdır. SNMP ayrıntılarını olabildiğince gizleyerek küçük, anlaşılması kolay işlevler üretir. Aynı zamanda en esnek ve en iyi belgelenmiş yapılandırma dosyasıdır. Bir örnek için agent/mibgroup/if-mib/ifTable/ifTable*.c dosyalarına bakın:

mib2c -c mib2c.mfd.conf MIBNODE

Tablo verileriniz başka bir yerde tutuluyorsa (örneğin, aracının kendi belleğinde değil de çekirdekteyse) ve erişilen SNMP satırı için doğru veriyi bulmak amacıyla bu veriler üzerinde "yineleme" (iterate) yapmanız gerekiyorsa. Bir örnek için agent/mibgroup/mibII/vacm_context.c dosyasına bakın:

mib2c -c mib2c.iterate.conf MIBNODE

Tablo verileriniz aracı içinde tutuluyorsa (yani harici bir kaynakta bulunmuyorsa) ve tamamen veri odaklıysa (yani bir set/atama işlemi gerçekleştiğinde herhangi bir işlem yapmanız gerekmiyorsa). Böyle bir tablo örneği için agent/mibgroup/examples/data_set.c dosyasına bakın:

mib2c -c mib2c.create-dataset.conf MIBNODE

Tablo verileriniz aracı içinde tutuluyorsa (yani harici bir kaynakta bulunmuyorsa) ve verilerinizi tablo dizinine göre sıralı tutabiliyorsanız, ancak bir set/atama işlemi gerçekleştiğinde işlem yapmanız gerekiyorsa:

mib2c -c mib2c.array-user.conf MIBNODE

BAŞLIK DOSYASI TANIMLARINI ÜRETME

Tablonuzdaki her bir sütun numarası için sadece bir define içeren bir başlık üretmek için:

mib2c -c mib2c.column_defines.conf MIBNODE

Enum içeren herhangi bir sütun için her bir enum tanımını içeren sadece bir başlık üretmek için:

mib2c -c mib2c.column_enums.conf MIBNODE

4.X KOD SATIRI İÇİN KOD ÜRETME (ESKİ API)

mib2c -c mib2c.old-api.conf MIBNODE

  • -IPATH Yapılandırma dosyalarını PATH dizininde arar.: Birden fazla -I anahtarı kullanılarak veya virgülle ayrılmış bir dizin listesi içeren tek bir anahtar kullanılarak birden fazla yol belirtilebilir.

-f OUTNAME Çıktı kodunu OUTNAME.c ve OUTNAME.h dosyalarına yerleştirir. Normalde mib2c, çıktı kodunu kod ürettiği tablo adlarına karşılık gelen dosyalara yerleştirir, bu da muhtemelen zaten isteyeceğiniz şeydir.

  • -i: Elde edilen kod üzerinde indent (girintileme) aracını çalıştırmaz.

  • -s: MIBNODE.sed dosyasını aramaz ve elde edilen kod üzerinde sed çalıştırmaz. Bu, koddaki uzun mib değişken adlarını kısaltmak için yararlıdır.

  • -q: mib2c'nin ürettiği durum mesajlarını en aza indiren "sessiz" (quiet) modda çalışır.

-SVAR=VAL mib2c..conf dosyasındaki bir VAR değişkenini önceden VAL değerine ayarlar. Ancak mevcut mib2c yapılandırma dosyalarının (mib2c..conf) hiçbiri şu anda bu özelliği kullanmamaktadır, bu nedenle bu seçeneğin yalnızca gelecekteki kullanımlar için geçerli olduğu düşünülmelidir.

Örnekler

       Aşağıdaki komut, UCD-DEMO-MIB::ucdDemoPublic nesnesini uygulamak üzere başlık ve
       uygulama dosyaları için C şablon kodu üretir.

	      % mib2c -c mib2c.scalar.conf ucdDemoPublic
	      writing to ucdDemoPublic.h
	      writing to ucdDemoPublic.c
	      running indent on ucdDemoPublic.h
	      running indent on ucdDemoPublic.c

       Sonuç olarak ucdDemoPublic.c ve ucdDemoPublic.h dosyaları mevcut çalışma
       dizininde oluşturulur.

       Aşağıdaki komut, TCP-MIB::tcpConnTable tablosunu uygulayacak modül için
       başlık ve uygulama dosyaları için C şablon kodu üretir.

	      % mib2c -c mib2c.iterate.conf tcpConnTable
	      writing to tcpConnTable.h
	      writing to tcpConnTable.c
	      running indent on tcpConnTable.h
	      running indent on tcpConnTable.c

       Sonuç olarak tcpConnTable.c ve tcpConnTable.h dosyaları mevcut çalışma
       dizininde oluşturulur.

Ayrıca Bakınız

snmpcmd(1), snmp.conf(5)