App-Slaughter
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Slaughter/Info/freebsd.pm view on Meta::CPAN
#
# The data we will return.
#
my $ref;
#
# Call "hostname" to determine the local hostname.
#
$ref->{ 'fqdn' } = `hostname`;
chomp( $ref->{ 'fqdn' } );
#
# Get the hostname and domain name as seperate strings.
#
if ( $ref->{ 'fqdn' } =~ /^([^.]+)\.(.*)$/ )
{
$ref->{ 'hostname' } = $1;
$ref->{ 'domain' } = $2;
}
else
{
#
# Better than nothing, right?
#
$ref->{ 'hostname' } = $ref->{ 'fqdn' };
$ref->{ 'domain' } = $ref->{ 'fqdn' };
}
#
# Kernel version.
#
$ref->{ 'release' } = `uname -r`;
chomp( $ref->{ 'release' } );
#
# Are we i386/amd64?
#
$ref->{ 'arch' } = `uname -p`;
chomp( $ref->{ 'arch' } );
#
# This should be portable.
#
$ref->{ 'path' } = $ENV{ 'PATH' };
#
# Count of IPv4/IPv6 addresses.
#
my $ipv4 = 1;
my $ipv6 = 1;
#
# Parse the output of /sbin/ifconfig.
#
foreach my $line ( split( /[\r\n]/, `ifconfig` ) )
{
chomp($line);
next unless ( $line =~ /(inet|inet6)/ );
if ( $line =~ /inet ([^ \t]+)/ )
{
my $addr = $1;
next if ( $addr =~ /^127\./i );
$ref->{ 'ip_' . $ipv4 } = $addr;
$ipv4 += 1;
}
if ( $line =~ /inet6 ([^ \t]+)/ )
{
my $addr = $1;
next if ( $addr =~ /fe80/i );
$ref->{ 'ip6_' . $ipv6 } = $addr;
$ipv6 += 1;
}
}
# counts of addresses
$ref->{ 'ip_count' } = $ipv4;
$ref->{ 'ip6_count' } = $ipv6;
#
# Load Average - This test will always succeed on an FreeBSD
# system, but it is here to allow the module to be loaded/tested
# upon a GNU/Linux host
#
if ( $^O =~ /freebsd/ )
{
$ref->{ 'load_average' } = `sysctl -n vm.loadavg`;
# remove newline.
chomp( $ref->{ 'load_average' } );
# remove "{" and "}" wrappers
$ref->{ 'load_average' } =~ s/[\{\}]//g;
# remove leading/trailing whitespace.
$ref->{ 'load_average' } =~ s/^\s+|\s+$//g;
#
# Split into per-minute values.
#
my @avg = split( /[ \t]/, $ref->{ 'load_average' } );
$ref->{ 'load_average_1' } = $avg[0];
$ref->{ 'load_average_5' } = $avg[1];
$ref->{ 'load_average_15' } = $avg[2];
}
return ($ref);
}
1;
=head1 AUTHOR
Steve Kemp <steve@steve.org.uk>
=cut
=head1 LICENSE
Copyright (c) 2010-2015 by Steve Kemp. All rights reserved.
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.808 second using v1.00-cache-2.02-grep-82fe00e-cpan-b63e86051f13 )