#!/usr/bin/perl use strict; use warnings; use DBI; my $dsn = 'DBI:Sybase:server=sql1'; my $dbh = DBI->connect($dsn, "test", 'test123'); die "unable to connect to server $DBI::errstr" unless $dbh; $dbh->do("use portscan"); my $query = "SELECT domainname FROM psinfo"; my $sth = $dbh->prepare ($query) or die "prepare failed\n"; $sth->execute() or die "unable to execute query $query error $DBI::errstr"; $sth->finish; #my $rows = $sth->rows ; #print "$row rows returned by query\n"; my $line; my @list; my $myport; while ($line = $sth->fetchrow_array()) { my @list =`nmap $line`; foreach(@list){ if($_=~/open/g){ $_ =~ s/\/.*//g; if($myport){$myport=$myport.','.$_;chomp $myport;} else{$myport=$_; chomp $myport} } } print "$myport\n"; #for test $sth = $dbh->prepare("update psinfo set port=\'$myport\' where domainname=\'$line\'"); $sth->execute() or die "unable to execute update line where name is $line! error $DBI::errstr"; $sth->finish; }