ນີ້ແມ່ນຄໍາສັ່ງ mrtglib ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
MRTG_lib.pm - ຫ້ອງສະໝຸດສຳລັບ MRTG ແລະສະຄຣິບສະໜັບສະໜຸນ
ສະຫຼຸບສັງລວມ
ໃຊ້ MRTG_lib;
ຂອງຂ້ອຍ ($configfile, @target_names, %globalcfg, %targetcfg);
readcfg($configfile, \@target_names, \%globalcfg, \%targetcfg);
ຂອງຂ້ອຍ (@parsed_targets);
cfgcheck(\@target_names, \%globalcfg, \%targetcfg, \@parsed_targets);
ລາຍລະອຽດ
MRTG_lib ແມ່ນສ່ວນຫນຶ່ງຂອງ MRTG, Multi Router Traffic Grapher. ມັນໄດ້ຖືກແຍກອອກຈາກ MRTG ກັບ
ອະນຸຍາດໃຫ້ໂຄງການອື່ນໆນໍາໃຊ້ໄຟລ໌ config ດຽວກັນໄດ້ຢ່າງງ່າຍດາຍ. ສ່ວນຕົ້ນຕໍຂອງ MRTG_lib ແມ່ນ
config file parser ແຕ່ບາງຟັງຊັນອື່ນໆກໍ່ມີຄືກັນ.
$MRTG_lib::OS
ປະເພດຂອງ OS: WIN, UNIX, VMS
$MRTG_lib::SL
Slash ໃນ OS ປະຈຸບັນ.
$MRTG_lib::PS
ຕົວແຍກເສັ້ນທາງໃນຕົວແປ PATH
"readcfg"
"readcfg($file, \@targets, \%globalcfg, \%targetcfg [, $prefix, \%extrules])"
ອ່ານໄຟລ໌ config, parses ແລະຕື່ມຂໍ້ມູນໃສ່ບາງ arrays ແລະ hashes. ບັງຄັບ
arguments ແມ່ນ: ຊື່ຂອງໄຟລ໌ config, ອ້າງອີງເຖິງ array ທີ່ຈະຖືກຕື່ມ
ກັບບັນຊີລາຍຊື່ຂອງຊື່ເປົ້າຫມາຍ, hashref ສໍາລັບການຕັ້ງຄ່າທົ່ວໂລກ, hashref ສໍາລັບ
ການຕັ້ງຄ່າເປົ້າຫມາຍ.
syntax ໄຟລ໌ການຕັ້ງຄ່າແມ່ນ:
globaloption: ຄ່າ
targetoption[targetname]: ຄ່າ
ຄຳຕໍ່ທ້າຍ*extglobal: ຄ່າ
aprefix*exttarget[target2]: ຄ່າ
ຕົວຢ່າງ
workdir: /var/stat/mrtg
ເປົ້າໝາຍ[router1]: 2:[email protected]
14 ຖັນ*ທັງໝົດ: 2
hash config ທົ່ວໂລກມີໂຄງສ້າງ
$globalcfg{configoption} = 'ຄ່າ'
ເປົ້າໝາຍ config hash ມີໂຄງສ້າງ
$targetcfg{configoption}{targetname} = 'ຄ່າ'
ເບິ່ງ mrtg-reference ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບ syntax ການຕັ້ງຄ່າ MRTG.
"readcfg" ສາມາດເອົາສອງການໂຕ້ຖຽງເພີ່ມເຕີມເພື່ອຂະຫຍາຍ syntax ໄຟລ໌ config. ນີ້
ອະນຸຍາດໃຫ້ບັນດາໂຄງການວາງການຕັ້ງຄ່າຂອງເຂົາເຈົ້າເຂົ້າໄປໃນໄຟລ໌ mrtg config. ທີຫ້າ
argument ແມ່ນຄໍານໍາຫນ້າຂອງການຂະຫຍາຍ, ການໂຕ້ຖຽງທີຫົກແມ່ນ hash ກັບ the
ກົດລະບຽບການກວດສອບສໍາລັບການຕັ້ງຄ່າການຂະຫຍາຍເຫຼົ່ານີ້. ຕົວຢ່າງ: ຖ້າຄໍານໍາຫນ້າແມ່ນ "14all" "readcfg" ຈະ
ກວດເບິ່ງເສັ້ນ config ທີ່ເລີ່ມຕົ້ນດ້ວຍ "14all*", ie ເສັ້ນທັງຫມົດເຊັ່ນ
14 ຖັນ*ທັງໝົດ: 2
14all*graphsize[target3]: 500 200
ຂັດກັບກົດລະບຽບໃນ %extrules. ຮູບແບບຂອງ hash ນີ້ແມ່ນ:
$extrules{option} = [ຍ່ອຍ{$_[0] =~ m/^\d+$/}, ຍ່ອຍ{"ຂໍ້ຄວາມຜິດພາດສຳລັບ $_[0]"}]
ie
$extrules{option}[0] -> ການສະແດງຜົນການທົດສອບ
$extrules{option}[1] -> ຂໍ້ຄວາມຜິດພາດຖ້າການທົດສອບລົ້ມເຫລວ
ສ່ວນທໍາອິດຂອງ array ແມ່ນການສະແດງອອກ perl ເພື່ອທົດສອບມູນຄ່າຂອງທາງເລືອກ. ໄດ້
ການທົດສອບສາມາດເຂົ້າເຖິງຄ່ານີ້ໃນຕົວແປ "$arg". ສ່ວນທີສອງຂອງ array ແມ່ນ an
ຂໍ້ຄວາມຜິດພາດທີ່ຈະສະແດງເມື່ອການທົດສອບລົ້ມເຫລວ. ຄ່າທີ່ລົ້ມເຫລວສາມາດໄດ້ຮັບການປະສົມປະສານໂດຍ
ການນໍາໃຊ້ຕົວແປ "$arg".
ການຕັ້ງຄ່າທີ່ມີຄໍານໍາຫນ້າທີ່ແຕກຕ່າງກັນກ່ວາຫນຶ່ງທີ່ໄດ້ຮັບໃນການເອີ້ນ "readcfg" ແມ່ນ
ບໍ່ໄດ້ກວດເບິ່ງແຕ່ໃສ່ເຂົ້າໄປໃນ %globalcfg ແລະ %targetcfg. ການຕັ້ງຄ່າ prefixed ຮັກສາຂອງເຂົາເຈົ້າ
prefix ໃນ config hashes:
$targetcfg{'14all*graphsize'}{'target3'} = '500 200'
"cfgcheck"
"cfgcheck(\@target_names, \%globalcfg, \%targetcfg, \@parsed_targets)"
ກວດເບິ່ງການຕັ້ງຄ່າທີ່ອ່ານໂດຍ "readcfg". ກວດເບິ່ງຄ່າໃນ config ສໍາລັບ
syntactical ແລະ/ຫຼື ຄວາມຜິດພາດທາງຄວາມຫມາຍ. ກໍານົດຄ່າເລີ່ມຕົ້ນສໍາລັບບາງທາງເລືອກ. parses ໄດ້
"target[...]" ທາງເລືອກແລະຕື່ມຂໍ້ມູນໃສ່ array @parsed_targets ກຽມພ້ອມສໍາລັບຟັງຊັນ mrtg.
ສາມການໂຕ້ຖຽງທໍາອິດແມ່ນຄືກັນກັບ "readcfg". ການໂຕ້ຖຽງທີ່ສີ່ແມ່ນເປັນ
arrayref ເຊິ່ງຈະເຕັມໄປດ້ວຍ defs ເປົ້າຫມາຍທີ່ແຍກອອກ.
"cfgcheck" ແປງຄ່າຂອງການຕັ້ງຄ່າເປົ້າຫມາຍ ທາງເລືອກໃນການ, ຕົວຢ່າງ
options[router1]: bits, growright
ກັບ hash:
$targetcfg{'option'}{'bits'}{'router1'} = 1
$targetcfg{'option'}{'growright'}{'router1'} = 1
ນີ້ບໍ່ໄດ້ເຮັດໂດຍ "readcfg" ດັ່ງນັ້ນຖ້າທ່ານບໍ່ໃຊ້ "cfgcheck" ທ່ານຕ້ອງກວດເບິ່ງ.
ຕົວປ່ຽນແປງສະເກັດ $targetcfg{'option'}{'router1'} (MRTG ອະນຸຍາດໃຫ້ທາງເລືອກທີ່ຈະແຍກອອກ
ໂດຍຊ່ອງຫຼື ',').
"ensureSL"
"ensureSL(\$pathname)"
ກວດເບິ່ງວ່າ ຊື່ເສັ້ນທາງ ບໍ່ມີຕົວແຍກເສັ້ນທາງຄູ່ ແລະລົງທ້າຍດ້ວຍເສັ້ນທາງ
ຕົວແຍກ. ມັນໃຊ້ $MRTG_lib::SL ເປັນຕົວແຍກເສັ້ນທາງ ເຊິ່ງຈະເປັນ / ຫຼື \ ຂຶ້ນກັບ
OS.
"log2rrd"
"log2rrd ($router,\%globalcfg,\%targetcfg)"
ປ່ຽນໄຟລ໌ບັນທຶກເປັນຮູບແບບ rrd. ຕ້ອງການ rrdtool.
"datestr"
"datestr(ເວລາ)"
ຕອບເວລາທີ່ໃຫ້ຢູ່ໃນອາກິວເມັນເປັນສະຕຣິງວັນທີທີ່ມີຮູບແບບທີ່ສວຍງາມ. ການໂຕ້ຖຽງ
ຈະຕ້ອງຢູ່ໃນຮູບແບບເວລາ UNIX (ວິນາທີນັບຕັ້ງແຕ່ 1970-1-1).
"ເວລາ"
"timestamp()"
ຕອບສະຕຣິງທີ່ເປັນຕົວແທນຂອງເວລາປະຈຸບັນ.
"setup_loghandlers"
"setup_loghandlers(ຊື່ໄຟລ໌)"
ຕິດຕັ້ງຕົວຈັບສັນຍານສຳລັບ __DIE__ ແລະ __WARN__ ເຮັດໃຫ້ຄວາມຜິດພາດໄປຕາມທີ່ກຳນົດໄວ້.
ຈຸດໝາຍປາຍທາງ. ຖ້າຊື່ໄຟລ໌ແມ່ນ 'eventlog' mrtg ຈະເຂົ້າສູ່ລະບົບ windows event logger.
"Existr"
"expistr (ເວລາ)"
ສົ່ງຄືນເວລາທີ່ໃຫ້ຢູ່ໃນອາກິວເມັນທີ່ຈັດຮູບແບບທີ່ເໝາະສົມກັບ HTTP Expire-Headers.
"ສ້າງ_pid"
"ສ້າງ_pid()"
ສ້າງໄຟລ໌ pid ສໍາລັບ daemon mrtg
"demonize_me"
"demonize_me()"
ວາງໂປຣແກມທີ່ເຮັດວຽກຢູ່ໃນພື້ນຫຼັງ, ແຍກມັນອອກຈາກ terminal.
"populatecache"
"populatecache(\%confcache, $host, $reread, $snmpoptshash)"
ອ່ານຕົວແປ SNMP ifDescr, ipAdEntIfIndex, ifPhysAddress, ifName ຈາກ ເຈົ້າພາບ
ແລະເກັບຮັກສາຄຸນຄ່າໃນ %confcache ດັ່ງຕໍ່ໄປນີ້:
$confcache{$host}{'Descr'}{ifDescr}{oid} = (ifDescr ຫຼື 'Dup')
$confcache{$host}{'IP'}{ipAdEntIfIndex}{oid} = (ipAdEntIfIndex ຫຼື 'Dup')
$confcache{$host}{'Eth'}{ifPhysAddress}{oid} = (ifPhysAddress ຫຼື 'Dup')
$confcache{$host}{'Name'}{ifName}{oid} = (ifName ຫຼື 'Dup')
$confcache{$host}{'Type'}{ifType}{oid} = (ifType ຫຼື 'Dup')
ຄ່າ (ຢູ່ເບື້ອງຂວາຂອງ =) ແມ່ນ 'Dup' ຖ້າຄ່າຖືກດຶງຂໍ້ມູນຫຼາຍເທື່ອ,
ມູນຄ່າທີ່ດຶງມາອີກ.
"readconfcache"
"$confcache ຂອງຂ້ອຍ = readconfcache($file)"
ໂຫຼດ confcache ຈາກໄຟລ໌ໄວ້ລ່ວງໜ້າ.
"readfromconfcache"
"writeconfcache($confcache, $file)"
ເກັບຮັກສາ confcache ໃນປັດຈຸບັນເຂົ້າໄປໃນໄຟລ໌.
"ຂຽນ confcache"
"writeconfcache($confcache, $file)"
ເກັບຮັກສາ confcache ໃນປັດຈຸບັນເຂົ້າໄປໃນໄຟລ໌.
"storeincache"
"storeincache($confcache,$host,$method,$key,$value)"
"readfromcache"
"readfromcache($confcache, $host, $method, $key)"
"clearfromcache"
"clearfromcache($confcache, $host)"
"ດີບັກ"
"ດີບັກ($type, $message)"
ພິມ ຂໍ້ຄວາມ ໃນ STDERR ຖ້າການດີບັກຖືກເປີດໃຊ້ສໍາລັບປະເພດ ປະເພດ. ປະເພດດີບັກແມ່ນ
ເປີດໃຊ້ຖ້າ ປະເພດ ຢູ່ໃນ array @main::DEBUG.
AUTHORS
Rainer Bawidamann[email protected]>
(ໜ້ານີ້)
ໃຊ້ mrtglib ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net