README
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:4k
源码类别:

SNMP编程

开发平台:

C/C++

  1. PREREQUISITES:
  2. - Linux operating system ( I am using RedHat 6.2 );
  3.         - MRTG version ( I used 2.8.8 version );
  4. - SHELL scripting language;
  5. - PERL with Net::Telnet module (the last version of this module
  6. you could find at http://search.cpan.org/search?module=Net::Telnet );
  7. - AWK scripting language;
  8. - TELNET client;
  9. - CRON daemon installed;
  10. - TCP/IP Network connection {:-)
  11. INSTALLATION
  12. This script was inspired from diskmon utility in contib section
  13. of MRTG application. Basically it is working in the same way
  14. with diskmon, but the diference (it has to be) is the following:
  15.  - it is not launched normally from your old MRTG, it is launched
  16.  separatelly by cron daemon
  17.  
  18. You need MRTG host machine and you could have any clients you want.
  19. On the client machine (let say for example MailServer) you need to
  20. configure in inetd.conf one more service, like this:
  21. ############################
  22. # /etc/inetd.conf -rw-r--r--
  23. #
  24. mrtgrq stream tcp nowait root /usr/sbin/tcpd /usr/sbin/mrtgrq
  25. #
  26. # EOF
  27. ############################
  28. The 'mrtgrq' is a script file which use the repquota utility
  29. for partitioned disks using quotation mark.
  30. I am using the following 'mrtgrq' script for reading each 
  31. qmail-user used space:
  32. #!/bin/sh
  33. /usr/sbin/repquota -vua | /bin/egrep -v '(*|Block|User|root|bin|daemon|news|uucp|games|ftp|squid|named|postgres|gdm|nobody|xfs|alias|qmail|admin)' | sort -k1
  34. exit 0
  35. As you can see, I cut off from reports informations for other normal user
  36. not involved in qmail transactions (see egrep).
  37. Of course you need to declare in your services file the new tcp service
  38. called mrtgrq, like this:
  39. ##########################
  40. # /etc/services -rw-r--r--
  41. #
  42. mrtgrq 9000/tcp # MRTG Repquota service
  43. #
  44. # EOF
  45. ############################
  46. You may use a different free port number you want, but you have
  47. to keep in mind this, because you'll need it on MRTG machine.
  48. For client everything is almost done, just kill -HUP the inetd
  49. daemon. You may wish to test if everything it's fine on
  50. the client side, for this just isue the following
  51. command:
  52. telnet <your.client.name_or_ip> 9000
  53. You should see the result from the repquota utility.
  54. The MRTG side is following:
  55. mrtgrq
  56.         I use this script to monitor the disk-space used by e-mail users
  57. on MailServer ( I am using Qmail ). Usage is very simple:
  58.         - Put in your crontab file a line which have to be run
  59. every ten (10) minute or any other time interval you want
  60. (but you have to edit, according with this new value,
  61. 'make-mrtg.cfg.awk' file). I am using Linux RedHat 6.2
  62. and in my /etc/cron.d I put a file named 'net-hosts' with
  63. the following structure:
  64. ##################################
  65. # /etc/cron.d/net-hosts -rw-r--r--
  66. #
  67. */10 * * * * root /usr/local/mrtg/contrib/mrtgrq/mrtgrq
  68. #
  69. # EOF
  70. ##################################
  71. - Restart your cron daemon... and wait
  72.         To install, first edit the variables from both 'make-mrtg.cfg.awk'
  73. and 'mrtgrq' files as needed. I found it easier to have these defined
  74. rather than hardcoded due to differences between code interpretations.
  75. You don't have to insert any other target in your own mrtg.cfg
  76. file that you already have, because this script is launched by
  77. the cron daemon.
  78. make-mrtg.cfg.awk
  79. This is the core of the entire task. Here I make 'mrtg-awk.cfg'
  80. file using the output of 'getreport.pl' from a temporary
  81. file 'mrtgrq-temp.tmp' which finally will be erased.
  82. After doing this, internaly is lauched 'mrtg' executable
  83. for mrtgrq's mrtg.cfg file (named 'mrtg-awk.cfg').
  84. You could use 'indexmaker' script provided with MRTG
  85. for doing an index.html file (see an example in 'mrtgrq').
  86. Be aware ! You have to place icons (MRTG) and image files
  87. (grnball.gif, redball.gif, cubprev.gif) in the same
  88. location. You also have to place 'mrtgrq.css' into declared
  89. location inside that AWK script file.
  90. getreport.pl
  91. This script in Perl requires Net::Telnet module instaled.
  92. Its only task is to read the client on port 9000 (or other
  93. you want) and print this output.
  94. This output is redirected into a temporary file which
  95. will be the input for the AWK script.
  96. ----------
  97.         Direct questions or suggestions to me.
  98.         Have fun!
  99.         -Adrian Turcu <adrianturcu@yahoo.com>