403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /opt/webdir/bin/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /opt/webdir/bin/bx-monitor
#!/usr/bin/perl
#
use strict;
use warnings;

use lib "/opt/webdir/lib";
use bxDaemon;
use Output;
use Pool;
use Data::Dumper;
use Getopt::Long;
use File::Basename qw( dirname basename );


# program options
my $prog_name = basename $0;
my $prog_dir  = dirname $0;

my $o_action  = "status";           # type of action that script must do.
                                    # status - current status - enable or disable
                                    # enbale - enable monitoring
                                    # disable - monitoring
                                    # update  - update monitoring node ( usage when node added to the pool )
my $o_monitoring_server = undef;    # ip address of monitoring
my $o_monitoring_status = undef;    # status of monitoring system
my $o_format  = 'plain';            # format of stdout message
my $o_verbose = 0;
my $o_help    = undef;
# monitoring auth options
my ($o_nagios_user, $o_nagios_password, $o_munin_user, $o_munin_password);
# email options
my ($o_smtphost, $o_smtpport, $o_smtppass, 
    $o_smtplogin, $o_smtptls, $o_smtpmethod, $o_monitor_email,
    $o_notify_nagios,
);

# get command line options
Getopt::Long::Configure ("bundling");
my $result_option = GetOptions(
  'v'     => \$o_verbose,   'verbose'   => \$o_verbose,
  'h'     => \$o_help,      'help'      => \$o_help,
  "a:s"   => \$o_action,    'action:s'  => \$o_action,
  "s:s"   => \$o_monitoring_server, 'server:s' => \$o_monitoring_server,
  "o:s"   => \$o_format,    'output'    => \$o_format,
  # auth options for monitoring service
  "nagios_user:s" => \$o_nagios_user,
  "nagios_password:s" => \$o_nagios_password,
  "munin_user:s" => \$o_munin_user,
  "munin_password:s" => \$o_munin_password,
  # email options for monitoring service
  "smtphost:s" => \$o_smtphost,
  "smtpport:s" => \$o_smtpport,
  "smtppass:s" => \$o_smtppass,
  "smtplogin:s" => \$o_smtplogin,
  "smtptls" => \$o_smtptls,
  "smtpmethod:s" => \$o_smtpmethod,
  "monitor_email:s" => \$o_monitor_email,
  "notify_nagios" => \$o_notify_nagios,
) or unknown_arg();

# help message
if ( $o_help ) { print_help($prog_name, 0) };
# formt output
if ( $o_format !~ /^(json|plain|te?xt)$/ ) { print_help($prog_name, 1)}
if ( $o_format =~ /^te?xt$/ ) { $o_format = "plain" };

# process request
my $confPool = Pool->new();
my $confMonitor = undef;
#if ($o_action =~ /^status$/i){
#  $confMonitor = $confPool->monitorStatus();
# configure server
#}elsif ($o_action =~ /^enable$/){
#  $confMonitor = $confPool->monitorEnable(
#      {
#          nagios_server_login => $o_nagios_user,
#          nagios_server_password => $o_nagios_password,
#          munin_server_login => $o_munin_user,
#          munin_server_password => $o_munin_password,
#          monitoring_server => $o_monitoring_server,
#          monitor_email => $o_monitor_email,
#          monitor_smtphost => $o_smtphost,
#          monitor_smtpport => $o_smtpport,
#          monitor_smtplogin => $o_smtplogin,
#          monitor_smtppass => $o_smtppass,
#          monitor_smtpmethod => $o_smtpmethod,
#          monitor_smtptls => $o_smtptls,
#          notify_nagios => ($o_notify_nagios)? 1: 0,
#      }
#  );
#}elsif ($o_action =~ /^disable$/){
#  $confMonitor = $confPool->monitorDisable();
#}elsif ($o_action =~ /^update$/ ){
#  $confMonitor = $confPool->monitorUpdate();
#}else{
#  $confMonitor = Output->new( error => 1, message => "Unknown action option. PLease use -h for help message." );
#}
#print Dumper( $confMonitor );
$confMonitor->print($o_format);

# print usage
sub print_usage {
  my $prog = shift;
  print "Usage: $prog [-vh] [-a enable|disable|status] [-s server_ip] \n";
}

# help message
sub print_help {
  my $prog = shift;
  my $exit = shift;
  print_usage( $prog );
  print <<EOT;
Options:
  -h|--help    - show this message
  -v|--verbose - enable verbose mode.
  -a|--action  - monitoring action: status|enable|disable
  -s|--server  - monitoring server ( default: localhost ip address )
 Ex.
  * get status of monitoring in pool
 $prog -o json
  * enable monitoring
 $prog -a enable -s 192.168.1.151
  * disable monitoring
 $prog -a disable
  * update monitoring by new host(s)
 $prog -a update 
EOT
;
  exit;
}

Youez - 2016 - github.com/yon3zu
LinuXploit