Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- # вводим переменные
- # хост, который будем опрашивать
- #$snmp_host = $ARGV[0];
- $MYDATE = $ARGV[1];
- #$MYTIME = $ARGV[2];
- # достаём время
- # MySQL хост
- #$host = '10.40.2.30';
- # MySQL юзер
- #$user = 'snmp';
- # MySQL пароль
- #$password = 'snmp';
- # MySQL база данных
- #$database = 'SNMP';
- # подрубаем модуль для работы с MySQL
- use DBI;
- # Коннектимся к MySQL
- $dbh = DBI->connect("DBI:mysql:SNMP:10.40.2.30", "snmp", "snmp");
- # Создаём в БД таблицу для хранения итогов
- $MySQL_query = "CREATE TABLE IF NOT EXISTS `ALL_SNMP`
- (`unic_id` INT(12) NOT NULL AUTO_INCREMENT ,
- `ALL_time` TIMESTAMP(12) NOT NULL ,
- `ALL_user` TEXT(12) NOT NULL ,
- `ALL_ip` TEXT(20) NOT NULL ,
- `ALL_mac` TEXT(30) NOT NULL ,
- `ALL_port` TEXT(12) NOT NULL ,
- PRIMARY KEY (`unic_id`)
- )";
- $dbh->do("$MySQL_query") or die $Mysql::db_errstr;
- # Сбор данных
- my $res = $dbh->prepare("SELECT DISTINCT CISCO_user, ip, mac, port
- FROM SNMP_MAC, CISCO_SES
- WHERE CISCO_IF_mac=mac
- AND CISCO_date=date
- AND CISCO_time=time
- AND CISCO_date='$MYDATE'
- AND port<25 ;");
- $res->execute();
- if ($res->err) {
- # Если возникла ошибка
- print "Ошибка " . $res->errstr;
- }
- else {
- while (my @row = $res->fetchrow_array()) {
- $str = "$row[0]\t$row[1]\t$row[2]\t$row[3]";
- #print $str, "\n";
- push (@MASS_IN ,$str);
- }
- }
- $res->finish();
- ##Получение данных из таблицы назначения
- my $res2 = $dbh->prepare("SELECT ALL_user, ALL_ip, ALL_mac, ALL_port
- FROM ALL_SNMP ;");
- $res2->execute();
- if ($res2->err) {
- # Если возникла ошибка
- print "Ошибка " . $res->errstr;
- }
- else {
- while (my @row2 = $res2->fetchrow_array()) {
- $str2 = "$row2[0]\t$row2[1]\t$row2[2]\t$row2[3]";
- #print $str, "\n";
- push (@MASS_OUT ,$str2);
- }
- }
- $res2->finish();
- #Получение уникальных массивов
- for $i (@MASS_IN) {
- push (@UNIC , $i) if ! grep {$i ne $_} @MASS_OUT;
- }
- #print @UNIC;
- #вНЕСЕНИЕ В БАЗУ
- for ($i=0; $i<scalar(@UNIC); ++$i)
- {
- ($user[$i], $ip_swich[$i], $mac[$i], $port[$i], ) = split(/\t/,$UNIC[$i],4);
- print $i, "-", $user[$i],"-", $ip_swich[$i], "-", $mac[$i], "-", $port[$i],"\n";
- $MySQL_query = "INSERT INTO `ALL_SNMP`
- (`ALL_user`,`ALL_mac`,`ALL_ip`,`ALL_port`) VALUES
- ('" . $user[$i] . "', '" . $ip_swich[$i] . "', '" . $mac[$i] ."', '" . $port[$i] . "')";
- $dbh->do("$MySQL_query") or die $Mysql::db_errstr;
- }
- 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement