diff --git a/pandora_agents/ChangeLog b/pandora_agents/ChangeLog index d34e711757..57e4b0c96b 100644 --- a/pandora_agents/ChangeLog +++ b/pandora_agents/ChangeLog @@ -1,3 +1,8 @@ +2009-07-16 Ramon Novoa + + * linux/plugins/pandora_ps, linux/plugins/pandora_df: Added to + repository. New ps and df plugins. + 2009-07-02 Manuel Arostegui * linux/pandora_agent.spec: Fixed a typo. diff --git a/pandora_agents/linux/plugins/pandora_df b/pandora_agents/linux/plugins/pandora_df new file mode 100755 index 0000000000..97246fa2b0 --- /dev/null +++ b/pandora_agents/linux/plugins/pandora_df @@ -0,0 +1,70 @@ +#!/usr/bin/perl +############################################################################### +# +# Copyright (c) 2009 Ramon Novoa +# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# +# pandora_df Retrieve filesystem disk usage. By default information for all +# filesystems is returned, but one or more filesystems may be +# specified as command line parameters. +# +# Sample usage: ./pandora_df tmpfs /dev/sda1 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +############################################################################### + +use strict; + +# Retrieve information from all filesystems +my $all_filesystems = 0; + +# Check command line parameters +if ($#ARGV < 0) { + $all_filesystems = 1; +} + +# Parse command line parameters +my %filesystems; +foreach my $fs (@ARGV) { + $filesystems{$fs} = '-1%'; +} + +# Retrieve filesystem information +# -P use the POSIX output format for portability +my @df = `df -P`; +shift (@df); + +# No filesystems? Something went wrong. +if ($#df < 0) { + exit 1; +} + +# Parse filesystem usage +foreach my $row (@df) { + my @columns = split (' ', $row); + exit 1 if ($#columns < 4); + $filesystems{$columns[0]} = $columns[4] if (defined ($filesystems{$columns[0]}) || $all_filesystems == 1); +} + +while (my ($filesystem, $use) = each (%filesystems)) { + + # Remove the trailing % + chop ($use); + + # Print module output + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; +} + +exit 0; diff --git a/pandora_agents/linux/plugins/pandora_ps b/pandora_agents/linux/plugins/pandora_ps new file mode 100755 index 0000000000..aaa477d197 --- /dev/null +++ b/pandora_agents/linux/plugins/pandora_ps @@ -0,0 +1,56 @@ +#!/usr/bin/perl +############################################################################### +# +# Copyright (c) 2009 Ramon Novoa +# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# +# pandora_ps Get the status of the given processes. +# +# Sample usage: ./pandora_ps init perl mysqld +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +############################################################################### + +use strict; + +# Check command line parameters +if ($#ARGV < 0) { + print "Usage: $0 [process_2] ...\n\n"; + exit 1; +} + +# Parse command line parameters +my %processes; +my $module_name = $ARGV[0]; +foreach my $process (@ARGV) { + $processes{$process} = 0; +} + +# Retrieve process information +my @df = `ps -eo ucmd`; +shift (@df); + +# Parse filesystem usage +foreach my $row (@df) { + chomp ($row); + $processes{$row} = 1 if defined ($processes{$row}); +} + +while (my ($process, $status) = each (%processes)) { + # Print module output + print "\n"; + print " \n"; + print " \n"; + print " \n"; + print "\n"; +} + +exit 0;