Private GIT

Skip to content
Snippets Groups Projects
Select Git revision
21 results Searching

nightly_tasks_manager

Blame
  • nightly_tasks_manager 2.69 KiB
    #!/usr/bin/env perl
    ################################################################################
    # Copyright 2005-2015 Centreon
    # Centreon is developped by : Julien Mathis and Romain Le Merlus under
    # GPL Licence 2.0.
    # 
    # 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 ; either 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.
    # 
    # You should have received a copy of the GNU General Public License along with 
    # this program; if not, see <http://www.gnu.org/licenses>.
    # 
    # Linking this program statically or dynamically with other modules is making a 
    # combined work based on this program. Thus, the terms and conditions of the GNU 
    # General Public License cover the whole combination.
    # 
    # As a special exception, the copyright holders of this program give Centreon 
    # permission to link this program with independent modules to produce an executable, 
    # regardless of the license terms of these independent modules, and to copy and 
    # distribute the resulting executable under terms of Centreon choice, provided that 
    # Centreon also meet, for each linked independent module, the terms  and conditions 
    # of the license of that module. An independent module is a module which is not 
    # derived from this program. If you modify this program, you may extend this 
    # exception to your version of the program, but you are not obliged to do so. If you
    # do not wish to do so, delete this exception statement from your version.
    # 
    ####################################################################################
    
    use warnings;
    use strict;
    use Getopt::Long;
    use FindBin qw($Bin);
    use lib "$Bin/../lib/perl";
    use centreon::common::logger;
    
    use vars qw(@jobs);
    my $logger = centreon::common::logger->new();
    
    sub run_task {
        my ($name) = @_;
    
        if ($name[0] ne '/') {
            $name = "$Bin/../$name";
        }
        $logger->writeLogInfo("$name: start");
        my $output = qx|$name 2>&1|;
    
        ($? || !defined $output)
          ? $logger->writeLogError("Unexpected end!\n$output")
          : $logger->writeLogInfo($output, withdate => 0);
        $logger->writeLogInfo("$name: stop");
    }
    
    =head1 main program
    
    Main program starts here.
    
    =cut
    
    my $cfgfile = "/etc/centreon/nightly_tasks.pm";
    my $logfile = "/tmp/$0.log";
    my $result = GetOptions("config=s" => \$cfgfile,
                            "logfile=s" => \$logfile);
    
    require $cfgfile;
    
    $logger->file_mode($logfile);
    foreach my $task (@jobs) {
        run_task($task);
    }