summaryrefslogtreecommitdiff
path: root/zz-sys
blob: 204b2503524002bd0bf2e4623be1883411331580 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

########################################################
# Please file all bug reports, patches, and feature
# requests under:
#      https://sourceforge.net/p/logwatch/_list/tickets
# Help requests and discusion can be filed under:
#      https://sourceforge.net/p/logwatch/discussion/
########################################################

########################################################

# This script prints out information about the CPU(s) and physical memory.
# It obtains the information from the Sys::CPU and Sys::MemInfo perl modules,
# so these must be installed.

# Note that the number of CPUs is not the number of physical CPU chips;
# CPUs with Hyperthreading or multiple cores affect the number of CPUs
# displayed.

#######################################################
## Copyright (c) 2008 Laurent Dufour
## Covered under the included MIT/X-Consortium License:
##    http://www.opensource.org/licenses/mit-license.php
## All modifications and contributions by other persons to
## this script are assumed to have been donated to the
## Logwatch project and thus assume the above copyright
## and licensing terms.  If you want to make contributions
## under your own copyright or a different license this
## must be explicitly stated in the contribution an the
## Logwatch project reserves the right to not accept such
## contributions.  If you have made significant
## contributions to this script and want to claim
## copyright please contact logwatch-devel@lists.sourceforge.net.
#########################################################

eval "require Sys::Info::Base";
if ($@) {
   print STDERR "No Sys::Info::Base module installed.  To install, execute the command:\n";
   print STDERR "   perl -MCPAN -e 'install Sys::Info::Base' \n\n";
} else {
   use Sys::Info;
   my $info = Sys::Info->new;
   my $cpu  = $info->device( CPU => %options );
   print "   CPU:     " . $cpu->identify . "\n";
}

use POSIX qw(uname);
my ($OSname, $hostname, $release, $version, $machine) = POSIX::uname();
print "   Machine: $machine\n";
my $OStitle;
$OStitle = $OSname;
$OStitle = "Solaris" if ($OSname eq "SunOS" && $release >= 2);
print "   Release: $OStitle $release\n";

eval "require Sys::MemInfo";
if ($@) {
   print STDERR "No Sys::MemInfo module installed.  To install, execute the command:\n";
   print STDERR "   perl -MCPAN -e 'install Sys::MemInfo' \n\n";
} else {
   import Sys::MemInfo qw(totalmem freemem totalswap freeswap);
   my $swapused = &totalswap - &freeswap;
   printf "   Total Memory:  %6d MB\n", ((&totalmem - (&totalmem % (1024*1024))) / (1024*1024));
   printf "   Free Memory:   %6d MB\n", ((&freemem - (&freemem % (1024*1024))) / (1024*1024));
   printf "   Swap Used:     %6d MB\n", (($swapused - ($swapused % (1024*1024))) / (1024*1024));
}

# vi: shiftwidth=3 tabstop=3 syntax=perl et
# Local Variables:
# mode: perl
# perl-indent-level: 3
# indent-tabs-mode: nil
# End: