Maybe something like this. Please go through the script comments carefully to understand the flow of logic.
Code:
#!perl -w
my %counts;
my @subnettype;
my @dnsoptions;
my @dnsoptions2;
my @subnetpart2;
my $snetpart2;
my $subnet;
open(my $log, ">log-subnet.txt") or die "Could not open log: $!\n";
printf $log "Subnet,Static,DHCP,Unused\n";
##### Step 1, read subnets
open(my $in, "<m-names2.txt") or die "Could not open m-names2.txt: $!\n";
while(<$in>) {
next unless /(.*?)\/(.*)$/;
$subnet = $1;
print "Checking $subnet\n";
@dnsoptions = `./getobjectlst.exe -u Xxx-p Xxx -a $subnet -o rich`;
# Now, at this point, we may have "Error 48" in @dnsoptions, or we may have
# the nicely formatted output. We'll have to check for both cases here.
# Let's check the unsuccessful case first. The condition below checks if
# the first element of @dnsoptions array has the following text in it -
# "Error 48: This subnet does not exist." in it.
if ($dnsoptions[0] =~ /Error 48: This subnet does not exist./) {
# call "getsubnetlst.exe", passing $subnet as one of the parameters
@subnetpart2 = `./getsubnetlst.exe -u Xxx -p Xxx -a $subnet -t netwrok -o rich`;
# now loop through each element of the array @subnetpart2, which looks like this -
# ##########################################################################
# "East" "146.149.1.0" "N" "" "146.149.0.0" " " " " "255.255.255.128"
# ##########################################################################
# pick up the 2nd field from the left (e.g. 146.149.1.0 above), and pass it as
# a parameter to the cli "getobjectlst.exe".
foreach my $line (@subnetpart2) {
# get the 2nd field from the left
$snetpart2 = (split/"\s+"/, $line)[1];
# and now pass it to "getobjectlst.exe"; assign the output to
# the array @dnsoptions2
@dnsoptions2 = `./getobjectlst.exe -u Xxx-p Xxx -a $snetpart2 -o rich`;
# find out counts of each subnettype (4th field from left)
foreach my $line (@dnsoptions2) {
@subnettype = split/"\s+"/, $line;
$counts{$subnettype[3]}++;
}
}
} else # successful output from getobjectlst.exe
{
# find out counts of each subnettype (4th field from left)
foreach my $line (@dnsoptions) {
@subnettype = split/"\s+"/, $line;
$counts{$subnettype[3]}++;
}
}
printf $log "%s,%d,%d,%d\n", $subnet, ($counts{Static} or 0), ($counts{DHCP} or 0), ($counts{Unused} or 0);
%counts = ();
}
close($in);
close($log);
Hope that helps,
tyler_durden
_______________________________________________________________________________________
"If you don't claim your humanity you will become a statistic. You have been warned."
hi guys,
I have a requirement to run a script 4 times with different parameter values.
the 4 jobs have to run parallely which actually access different data of same table and deletes.
how can i achieve this.................?
Thanks in advance (1 Reply)
Hi Guys, I am trying write a wrapper script but I don't have any idea. I have 4 different korn shell scripts and all of them needs some parameters from command line (positional parameter). My script cant be interactive because its supposed to be automated. I am confused how can I write a wrapper... (6 Replies)
Hello,
I have the below wrapper script:
#!/usr/bin/perl -w
if ($^O eq 'MSWin32' ) {
$subnet = 'c:\path\to\subnet.txt';
}
else {
$subnet = '/opt/qip/wrapper-del-sub';
}
open FH1, 'jj-deleted-subnets.txt' or die "Can't open 'jj-deleted-subnets.txt'
... (0 Replies)
Hi,
I am in need of way to facilitate this senerio in a perl script.
I have CLI ( command line interface) which I run like so:
kip-tepltist -u Xxx -p Xxx
Which produces tones of names from each template it found:
194Iselin-NJ
33-IDFLB-North-611-Woodward-8600 ... (5 Replies)
I have tried looking through wrapper scripts throughout the forum, but I don't think they were able to answer my question (either that or I'm just confused).
Basically, I have a Perl script that I want to run in parallel 4 times with parameters, wait for all of them to finish, then run another... (8 Replies)
Hi,
I am writing a wrapper script(wrap_script.sh) to one of the main scripts (main_script.sh)
The main script is executed as following:
./main_script.sh <LIST> <STARTDATE> <ENDDATE>
looks for a parameter which is a LIST(consists of different list names that need to be processed), START/END... (0 Replies)
I have a KSH script that I want to call in a loop for each row in the above table
---
new_script.ksh (psuedo code)
the contents on this new script would be something like below...
for t in (select table_name,schema_name from laod_table)
loop
/bin/load_table.ksh t.table_name... (4 Replies)
Hi friends,
i am working in ksh88. i am running the follwing wapper script in background to run two jobs parallely((eg nohup wrapper.ksh &)::
wrapper.ksh
########################
#!/bin/ksh
nohup ./pii_insert.ksh /nsing83/p2/test &
nohup ./pii_update.ksh... (1 Reply)
Hi Gurus,
I need to build a wrapper script which will be passing the loading date and the data file name (provides option to the user to load a single data file or load all the data files) to the actual loader data_load.ksh to load in the database.
1. I want to execute the loader script... (6 Replies)
Discussion started by: express14
6 Replies
LEARN ABOUT DEBIAN
ipsec_samesaid
IPSEC_SAMEADDR(3) Library Functions Manual IPSEC_SAMEADDR(3)NAME
ipsec_sameaddr, ipsec_addrcmp, ipsec_samesubnet, ipsec_addrinsubnet, ipsec_subnetinsubnet, ipsec_subnetishost, ipsec_samesaid,
ipsec_sameaddrtype, ipsec_samesubnettype - do comparisons for addresses, subnets, SA IDs and address families
SYNOPSIS
#include <freeswan.h>
int sameaddr(const ip_address *a, const ip_address *b);
int addrcmp(const ip_address *a, const ip_address *b);
int samesubnet(const ip_subnet *a, const ip_subnet *b);
int addrinsubnet(const ip_address *a, const ip_subnet *s);
int subnetinsubnet(const ip_subnet *a, const ip_subnet *b);
int subnetishost(const ip_subnet *s);
int samesaid(const ip_said *a, const ip_said *b);
int sameaddrtype(const ip_address *a, const ip_address *b);
int samesubnettype(const ip_subnet *a, const ip_subnet *b);
DESCRIPTION
These functions do various comparisons and tests on the ip_address type and ip_subnet types.
Sameaddr returns non-zero if addresses a and b are identical, and 0 otherwise. Addresses of different families are never identical.
Addrcmp returns -1, 0, or 1 respectively if address a is less than, equal to, or greater than b. If they are not of the same address fam-
ily, they are never equal; the ordering reported in this case is arbitrary (and probably not useful) but consistent.
Samesubnet returns non-zero if subnets a and b are identical, and 0 otherwise. Subnets of different address families are never identical.
Addrinsubnet returns non-zero if address a is within subnet s and 0 otherwise. An address is never within a subnet of a different address
family.
Subnetinsubnet returns non-zero if subnet a is a subset of subnet b and 0 otherwise. A subnet is deemed to be a subset of itself. A sub-
net is never a subset of another subnet if their address families differ.
Subnetishost returns non-zero if subnet s is in fact only a single host, and 0 otherwise.
Samesaid returns non-zero if SA IDs a and b are identical, and 0 otherwise.
Sameaddrtype returns non-zero if addresses a and b are of the same address family, and 0 otherwise.
Samesubnettype returns non-zero if subnets a and b are of the same address family, and 0 otherwise.
SEE ALSO inet(3), ipsec_initaddr(3)HISTORY
Written for the FreeS/WAN project by Henry Spencer.
28 Nov 2000 IPSEC_SAMEADDR(3)