OSSEC/bin/ossec-update-agents-databas...

60 lines
1.1 KiB
Perl

#!/usr/bin/env perl
#ABSTRACT: script to update the agents within the mysql database
#PODNAME: ossec-update-agents-database.pl
use strict;
use warnings;
use File::Basename;
use OSSEC;
use XML::LibXML;
use Try::Tiny;
my $ossec = OSSEC->new();
my $mysql = $ossec->mysql();
# clear rules from database
$mysql->deleteAllAgents();
my $help = readpipe($ossec->ossecPath()."/bin/agent_control -l");
my @lines = split /\n/, $help;
for my $l (@lines)
{
if ($l =~ /^\s*ID:\s(\d+)/)
{
my $help = readpipe($ossec->ossecPath()."/bin/agent_control -i $1");
my @lines = split /\n/, $help;
my $name;
my $ip;
my $version;
my $information;
for my $l2 (@lines)
{
if ($l2 =~ /Name:\s+(\S+)/)
{
$name = $1;
}
if ($l2 =~ /IP.*:\s+(\S+)/)
{
$ip = $1;
}
if ($l2 =~ /version:\s+OSSEC\sHIDS\sv(\S+)/)
{
$version = $1;
}
if ($l2 =~ /system:\s+(.*)$/)
{
$information=$1;
}
}
$mysql->addAgent("1", 0, $ip, $version,$name, $information );
}
}