นี่คือคำสั่ง mib2c ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
mib2c -- สร้างโค้ดเทมเพลตสำหรับขยายเอเจนต์
เรื่องย่อ
มิบทูซี [-h] -c กำหนดค่า [-I PATH] [-f OUTNAME] [-i][-s][-q][-S VAR=VAL] MIBNODE
DESCRIPTION
เครื่องมือ mib2c ออกแบบมาเพื่อใช้ส่วนหนึ่งของแผนผัง MIB (ตามที่กำหนดโดยไฟล์ MIB)
และสร้างโค้ดเทมเพลต C ที่จำเป็นในการปรับใช้ออบเจกต์การจัดการที่เกี่ยวข้อง
อยู่ภายใน.
ในการปรับใช้โมดูล MIB ใหม่ จำเป็นต้องมีสามไฟล์:
- ไฟล์คำจำกัดความ MIB
- ไฟล์ส่วนหัว C
- ไฟล์การใช้งาน C
เครื่องมือ mib2c ใช้ไฟล์คำจำกัดความ MIB เพื่อสร้างไฟล์โค้ด C สองไฟล์ ดังนั้น mib2c
สร้างเทมเพลตที่คุณสามารถแก้ไขได้เพื่อเพิ่มตรรกะที่จำเป็นในการรับข้อมูลจาก
ระบบปฏิบัติการหรือแอปพลิเคชันเพื่อทำให้โมดูลสมบูรณ์
MIBNODE เป็นโหนด mib ระดับบนสุดที่คุณต้องการสร้างโค้ด คุณต้องให้ mib2c a
โหนด mib (เช่น ifTable) บนบรรทัดคำสั่ง ไม่ใช่ไฟล์ mib นี่คือซิงเกิ้ลที่สุด
ข้อผิดพลาดทั่วไป
เครื่องมือ mib2c ยอมรับทั้ง SMIv1 และ SMIv2 MIB
mib2c จำเป็นต้องสามารถค้นหาและโหลดไฟล์ MIB เพื่อสร้างรหัส C สำหรับ
เอ็มไอบี หากต้องการเปิดใช้งาน mib2c เพื่อค้นหาไฟล์ MIB ให้ตั้งค่าตัวแปรสภาพแวดล้อม MIBS ให้รวม
ไฟล์ MIB ที่คุณใช้ ตัวอย่างการตั้งค่าตัวแปรสภาพแวดล้อมนี้คือ:
MIBS=+NET-SNMP-TUTORIAL-MIB
or
MIBS=ทั้งหมด
ตัวอย่างแรกช่วยให้แน่ใจว่า mib2c พบ NET-SNMP-TUTORIAL-MIB mib นอกเหนือจาก
โมดูล MIB เริ่มต้น รายการเริ่มต้นของโมดูล MIB ถูกกำหนดเมื่อชุดแรกเป็น
กำหนดค่าและสร้างและโดยทั่วไปสอดคล้องกับรายการโมดูลที่ตัวแทน
รองรับ ตัวอย่างที่สองช่วยให้แน่ใจว่า mib2c ค้นหา MIB ทั้งหมดในตำแหน่งการค้นหาสำหรับ
ไฟล์ MIB ตำแหน่งการค้นหาเริ่มต้นสำหรับไฟล์ MIB คือ /usr/share/snmp/mibs การค้นหานี้
ตำแหน่งสามารถแก้ไขได้โดยตัวแปรสภาพแวดล้อม MIBDIRS
ทั้งไฟล์ MIB ที่จะโหลดและตำแหน่งการค้นหาไฟล์ MIB ยังสามารถกำหนดค่าได้ใน
ไฟล์ snmp.conf โปรดมอง snmp.conf(5) สำหรับข้อมูลเพิ่มเติม
ไฟล์ *.c และ *.h ที่สร้างขึ้นจะถูกสร้างขึ้นในไดเร็กทอรีการทำงานปัจจุบัน
OPTIONS
-h แสดงข้อความช่วยเหลือ
-c กำหนดค่า
ใช้ CONFIGFILE เมื่อสร้างรหัส ไฟล์เหล่านี้จะถูกค้นหาก่อนใน
ไดเร็กทอรีปัจจุบันแล้วใน / usr / share ไดเร็กทอรี (ซึ่งเป็นที่ที่ default
ไฟล์การกำหนดค่า mib2c สามารถพบได้) การรัน mib2c โดยไม่มี -c CONFIGFILE
ตัวเลือกจะแสดงคำอธิบายของค่าที่ถูกต้องสำหรับ CONFIGFILE นั่นคือ
ไฟล์ปรับแต่งที่มีอยู่ รวมถึงไฟล์ใหม่ที่คุณอาจสร้าง
ตัวอย่างเช่น
% mib2c ถ้าตาราง
จะแสดงคำอธิบายของค่าที่มีอยู่ในปัจจุบันสำหรับ CONFIGFILE
ค่าต่อไปนี้ได้รับการสนับสนุนสำหรับ CONFIGFILE:
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
การสร้างรหัสสำหรับวัตถุสเกลาร์:
หากคุณกำลังเขียนโค้ดสำหรับสเกลาร์บางตัว ให้เรียกใช้:
mib2c -c mib2c.scalar.conf MIBNODE
หากคุณต้องการ "ผูก" ตัวแปรจำนวนเต็มกับสเกลาร์จำนวนเต็มอย่างน่าอัศจรรย์ ให้ใช้:
mib2c -c mib2c.int_watch.conf MIBNODE
สร้างรหัสสำหรับตาราง:
ไฟล์การกำหนดค่าที่แนะนำสำหรับตารางคือ MIB สำหรับ Dummies หรือ MFD
ไฟล์การกำหนดค่า มันซ่อนรายละเอียด SNMP ให้ได้มากที่สุด สร้าง
ฟังก์ชันขนาดเล็กที่เข้าใจง่าย แถมยังยืดหยุ่นได้ดีอีกด้วย
ไฟล์การกำหนดค่าเอกสาร ดูเอเจนต์/mibgroup/if-mib/ifTable/ifTable*.c
ไฟล์ตัวอย่าง:
mib2c -c mib2c.mfd.conf MIBNODE
หากข้อมูลตารางของคุณถูกเก็บไว้ที่อื่น (เช่น อยู่ในเคอร์เนลและไม่ใช่ใน
ความทรงจำของเอเจนต์เอง) และคุณต้อง "ทำซ้ำ" เพื่อค้นหาสิ่งที่ถูกต้อง
ข้อมูลสำหรับแถว SNMP ที่กำลังเข้าถึง ดูตัวแทน/mibgroup/mibII/vacm_context.c
ไฟล์ตัวอย่าง:
mib2c -c mib2c.iterate.conf MIBNODE
หากข้อมูลตารางของคุณถูกเก็บไว้ในเอเจนต์ (เช่น ไม่ได้อยู่ใน external
แหล่งที่มา) และขับเคลื่อนด้วยข้อมูลล้วนๆ (เช่น คุณไม่จำเป็นต้องดำเนินการใดๆ เมื่อ
ชุดเกิดขึ้น) ดูไฟล์เอเจนต์/mibgroup/examples/data_set.c สำหรับตัวอย่างของ
ตารางดังกล่าว:
mib2c -c mib2c.create-dataset.conf MIBNODE
หากข้อมูลตารางของคุณถูกเก็บไว้ในเอเจนต์ (เช่น ไม่ได้อยู่ใน external
แหล่งที่มา) และคุณสามารถเก็บข้อมูลของคุณจัดเรียงตามดัชนีตาราง แต่คุณจำเป็นต้อง
ทำงานเมื่อมีชุดเกิดขึ้น:
mib2c -c mib2c.array-user.conf MIBNODE
การสร้างคำจำกัดความของไฟล์ส่วนหัว
ในการสร้างเฉพาะส่วนหัวที่มีการกำหนดหมายเลขคอลัมน์แต่ละคอลัมน์ในตารางของคุณ:
mib2c -c mib2c.column_defines.conf MIBNODE
เพื่อสร้างเพียงส่วนหัวที่มีการกำหนดสำหรับแต่ละ enum สำหรับคอลัมน์ใด ๆ ที่มี
แจงนับ:
mib2c -c mib2c.column_enums.conf MIBNODE
การสร้างรหัสสำหรับบรรทัด 4.X ของรหัส (API ที่เก่ากว่า)
mib2c -c mib2c.old-api.conf MIBNODE
-Iเส้นทาง ค้นหาไฟล์การกำหนดค่าใน PATH สามารถระบุเส้นทางได้หลายเส้นทางโดยใช้
สวิตช์ -I หลายตัวหรือโดยใช้รายการที่มีรายการพาธคั่นด้วยเครื่องหมายจุลภาค
-f เอาท์เนม
วางโค้ดเอาต์พุตลงใน OUTNAME.c และ OUTNAME.h โดยปกติ mib2c จะวาง
รหัสเอาต์พุตเป็นไฟล์ที่สอดคล้องกับชื่อตารางที่สร้างรหัส
สำหรับซึ่งอาจเป็นสิ่งที่คุณต้องการอยู่แล้ว
-i อย่าเรียกใช้การเยื้องบนรหัสผลลัพธ์
-s อย่ามองหา MIBNODE.sed และรัน sed ในโค้ดผลลัพธ์ สิ่งนี้มีประโยชน์ต่อ
ย่อชื่อตัวแปร mib แบบยาวในโค้ด
-q ทำงานในโหมด "เงียบ" ซึ่งย่อขนาดข้อความสถานะที่สร้างโดย mib2c
-SVAR=วาล
ตั้งค่าตัวแปร VAR ล่วงหน้าในไฟล์ mib2c.*.conf เป็นค่า VAL ไม่มี
ไฟล์การกำหนดค่า mib2c ที่มีอยู่ (mib2c.*.conf) กำลังใช้ประโยชน์จากสิ่งนี้
อย่างไรก็ตาม ดังนั้นตัวเลือกนี้จึงควรได้รับการพิจารณาว่าใช้ได้เฉพาะสำหรับอนาคตเท่านั้น
ใช้
ตัวอย่าง
ต่อไปนี้จะสร้างโค้ดเทมเพลต C สำหรับส่วนหัวและไฟล์การใช้งานto
ใช้ UCD-DEMO-MIB::ucdDemoPublic
% mib2c -c mib2c.scalar.conf ucdDemoPublic
กำลังเขียนถึง ucdDemoPublic.h
กำลังเขียนถึง ucdDemoPublic.c
กำลังเยื้องบน ucdDemoPublic.h
กำลังเยื้องบน ucdDemoPublic.c
ไฟล์ ucdDemoPublic.c และ ucdDemoPublic.h ที่เป็นผลลัพธ์จะถูกสร้างขึ้นจากการทำงานปัจจุบัน
ไดเรกทอรี
ต่อไปนี้จะสร้างโค้ดเทมเพลต C สำหรับส่วนหัวและไฟล์การใช้งานสำหรับ
โมดูลที่จะใช้ TCP-MIB::tcpConnTable
% mib2c -c mib2c.iterate.conf tcpConnTable
กำลังเขียนถึง tcpConnTable.h
กำลังเขียนถึง tcpConnTable.c
กำลังเยื้องบน tcpConnTable.h
กำลังเยื้องบน tcpConnTable.c
ไฟล์ tcpConnTable.c และ tcpConnTable.h ที่เป็นผลลัพธ์ถูกสร้างขึ้นในการทำงานปัจจุบัน
ไดเรกทอรี
ใช้ mib2c ออนไลน์โดยใช้บริการ onworks.net