Announcement

Collapse
No announcement yet.

Installation Patch

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Installation Patch

    J'ai télécharger les patch relatifs à Oreon, et lorsque je veux installer le premier j'ai cette réponse:

    [[email protected] oreon]# patch -p1 < /install/patch/oreon-patch/01-oreon_ODS_lib_purge-pm.patch patching file ODS/lib/purge.pm

    patch: ODS/lib/purge.pm: extra operand
    patch: Try `patch --help' for more information.


    Une idée sur la signification de l'erreur? :confused:

  • #2
    Tu peux rajouter un "--verbose" dans la ligne du patch ???
    Centreon 2.x

    Comment


    • #3
      Bonjour,
      j'ai la meme erreur et rajoutté "--verbose" ne change rien. Apres j'ai peut être mal compris ce qu'il fallait rajouté . D'ou ca pourrait venir ?

      Comment


      • #4
        Vous pouvez me donner le résultat de la commande:

        Code:
        [[email protected] oreon]# patch -p1 --verbose --dry-run < /install/patch/oreon-patch/01-oreon_ODS_lib_purge-pm.patch patching file ODS/lib/purge.pm
        Si je n'ai pas plus d'informations, ca va etre plus dur de vous aider -
        Last edited by WAtt; 16 May 2007, 11:16.
        Centreon 2.x

        Comment


        • #5
          La commande me donne :

          Patch: **** Can't change to directory ry-run : No such file or directory

          Comment


          • #6
            OUps... c'est --dry-run la commande, je modifie sur le post précedent
            Centreon 2.x

            Comment


            • #7
              ok

              Du coup j'ai refait la commande et ca ne donne rien de plus que le 1er message d'erreur:

              patch: ODS/lib/purge.pm: extra operand
              patch: Try `patch --help' for more information

              Comment


              • #8
                Je suis entrin d'installer les patchs et arrivé au patch 3 (oreon-1.4.3) il me dit :
                Hunk #1 FAILED at 30.
                1 out of 2 hunks FAILED -- saving rejects to file cron/parsing_log.pl.rej

                Dans le tuto il est marqué que c'est possible et ils donnent la démarche à suivre, mais le problème je ne vois pas ce que je dois modifier dans cron/parsing_log.pl

                Voici mon cron/parsing_log.pl :

                #! /usr/bin/perl -w
                ################################################## #################
                # Oreon is developped with GPL Licence 2.0
                #
                # GPL License: http://www.gnu.org/licenses/gpl.txt
                #
                # Developped by : Julien Mathis - [email protected]
                #
                ################################################## #################
                # 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, or (at your option) any later version.
                #
                # 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.
                #
                # For information : [email protected]
                ################################################## ##################

                use strict;
                use warnings;
                use DBI;
                use File:tat;
                use Getopt::Long;
                use POSIX;

                use vars qw($mysql_user $mysql_passwd $mysql_host $mysql_database_oreon $mysql_database_ods $opt_h $opt_a $data);

                my $installedPath = "/usr/local/oreon";
                #my $installedPath = "/usr/local/oreon";
                require $installedPath."/ODS/etc/conf.pm";

                ## Init Date
                my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isd st) = gmtime(time);

                # Init MySQL Connexion
                my $dbh = DBI->connect("DBI:mysql:database=".$mysql_database_ods .";host=".$mysql_host, $mysql_user, $mysql_passwd, {'RaiseError' => 1});

                Getopt::Long::Configure('bundling');
                GetOptions
                ("h" => \$opt_h, "help" => \$opt_h,
                "a" => \$opt_a, "archives" => \$opt_a);

                if($opt_h) {
                print "Usage : $0 :\n";
                print " -a (--archives) load data from log archives to database\n";
                print " -h (--help) show help\n";
                exit(0);
                }

                # Get conf Data
                my $sth = $dbh->prepare("SELECT archive_log, archive_retention, nagios_log_file FROM config");
                if (!$sth->execute) {die "Error:" . $sth->errstr . "\n";}
                $data = $sth->fetchrow_hashref();


                my $cpt = 0;
                my $ctime = 0;
                my $last_line_read;

                # Parsing nagios.log
                sub parseFile ($) {
                if (!open (FILE, $_[0])) {
                print "Cannot open file : $_[0]\n";
                }
                if (!$opt_a) {
                while ($cpt < $last_line_read && <FILE>){
                $cpt++;
                }
                }
                while (<FILE>) {
                if ($_ =~ m/^\[([0-9]*)\]\sSERVICE ALERT\:\s(.*)$/){
                my @tab = split(/;/, $2);
                $ctime = $1;
                $tab[5] =~ s/\'/\\\'/g;
                $sth = $dbh->prepare("INSERT INTO `log` (`msg_type`,`ctime`, `host_name` , `service_description`, `status`, `type`, `retry`, `output`) VALUES ('0', '$ctime', '".$tab[0]."', '".$tab[1]."', '".$tab[2]."', '".$tab[3]."','".$tab[4]."','".$tab[5]."')");
                if (!$sth->execute) {print "Error:" . $sth->errstr . "\n";}
                } elsif ($_ =~ m/^\[([0-9]*)\]\sHOST ALERT\:\s(.*)$/){
                my @tab = split(/;/, $2);
                $ctime = $1;
                $tab[4] =~ s/\'/\\\'/g;
                $sth = $dbh->prepare("INSERT INTO `log` (`msg_type`,`ctime`, `host_name` , `status`, `type`, `retry`, `output`) VALUES ('1', '$ctime', '".$tab[0]."', '".$tab[1]."', '".$tab[2]."','".$tab[3]."','".$tab[4]."')");
                if (!$sth->execute) {print "Error:" . $sth->errstr . "\n";}
                } elsif ($_ =~ m/^\[([0-9]*)\]\sSERVICE NOTIFICATION\:\s(.*)$/){
                my @tab = split(/;/, $2);
                $ctime = $1;
                $tab[5] =~ s/\'/\\\'/g;
                $sth = $dbh->prepare("INSERT INTO `log` (`msg_type`,`ctime`, `host_name` , `service_description`, `status`, `notification_cmd`, `notification_contact`, `output`) VALUES ('2', '$ctime', '".$tab[1]."', '".$tab[2]."', '".$tab[3]."', '".$tab[4]."','".$tab[0]."','".$tab[5]."')");
                if (!$sth->execute) {print "Error:" . $sth->errstr . "\n";}
                } elsif ($_ =~ m/^\[([0-9]*)\]\sHOST NOTIFICATION\:\s(.*)$/){
                my @tab = split(/;/, $2);
                $ctime = $1;
                $tab[4] =~ s/\'/\\\'/g;
                $sth = $dbh->prepare("INSERT INTO `log` (`msg_type`,`ctime`, `notification_contact`, `host_name` , `status`, `notification_cmd`, `output`) VALUES ('3', '$ctime', '".$tab[0]."','".$tab[1]."', '".$tab[2]."', '".$tab[3]."','".$tab[4]."')");
                if (!$sth->execute) {print "Error:" . $sth->errstr . "\n";}
                } elsif ($_ =~ m/^\[([0-9]*)\]\sWarning\:\s(.*)$/){
                my $tab = $2;
                $ctime = $1;
                $tab =~ s/\'/\\\'/g;
                $sth = $dbh->prepare("INSERT INTO `log` (`msg_type`,`ctime`, `output`) VALUES ('4','$ctime', '".$tab."')");
                if (!$sth->execute) {print "Error:" . $sth->errstr . "\n";}
                } elsif ($_ =~ m/^\[([0-9]*)\]\s(.*)$/) {
                $ctime = $1;
                my $tab = $2;
                $tab =~ s/\'/\\\'/g;
                $sth = $dbh->prepare("INSERT INTO `log` (`msg_type`,`ctime`, `output`) VALUES ('5','$ctime', '".$tab."')");
                if (!$sth->execute) {print "Error:" . $sth->errstr . "\n";}
                }
                $cpt++;
                }
                close(FILE);
                }


                my $retention = $data->{'archive_retention'};

                sub parseArchive() {
                my $dbh1 = DBI->connect("DBI:mysql:database=".$mysql_database_ore on.";host=".$mysql_host, $mysql_user, $mysql_passwd, {'RaiseError' => 1});
                my $sth1 = $dbh1->prepare("SELECT log_archive_path FROM cfg_nagios where nagios_activate = '1'");
                if (!$sth1->execute) {die "Error:" . $sth->errstr . "\n";}
                my $data1 = $sth1->fetchrow_hashref();
                my $archives = $data1->{'log_archive_path'};
                if (!$archives) {
                print "log archive path not found.\n";
                exit;
                }
                if (!($archives =~ /\/$/)) {
                $archives .= "/";
                }
                my @log_files = split /\s/,`ls $archives`;
                my $last_log = time() - ($retention * 24 * 60 * 60);
                foreach(@log_files) {
                $_ =~ /nagios\-([0-9\-]+).log/;
                my @time = split /\-/, $1;
                my $temp = $time[0]."/".$time[1]."/".$time[2];
                $temp = `date -d $temp +%s`;
                if ($temp > $last_log) {
                if(!(-r $archives.$_)) {
                print "Error : cannot read file $archives$_\n";
                }else {
                print $archives.$_."\n";
                parseFile($archives.$_);
                }
                }
                }
                }

                sub parseLogFile() {
                my $LOG_FILE = $data->{'nagios_log_file'};
                if (!(-r $LOG_FILE)) {
                print "Error : cannot open $LOG_FILE\n";
                exit(0);
                }
                if (!$data->{'archive_log'}){exit();}
                # Decide if we have to read the nagios.log from the begining
                if ($hour eq 0 && $min eq 0){
                $last_line_read = 0;
                $sth = $dbh->prepare("UPDATE config SET `last_line_read` = '0'");
                if (!$sth->execute) {die "Error:" . $sth->errstr . "\n";}
                $data = $sth->fetchrow_hashref();
                }

                $sth = $dbh->prepare("SELECT last_line_read FROM config");
                if (!$sth->execute) {die "Error:" . $sth->errstr . "\n";}
                $data = $sth->fetchrow_hashref();
                $last_line_read = $data->{'last_line_read'};
                if (!defined($last_line_read)){$last_line_read = 0;}
                parseFile($LOG_FILE);
                # Update statistics and flags
                my $sth1 = $dbh->prepare("UPDATE `config` SET `last_line_read` = '".$cpt."'");
                if (!$sth1->execute) {die "Error:" . $sth1->errstr . "\n";}
                }

                if ($opt_a) {
                parseArchive;
                } else {
                parseLogFile();
                }

                # if ($retention ne 0){
                # my $last_log = time() - ($retention * 24 * 60 * 60);
                # my $sth1 = $dbh->prepare("DELETE FROM log WHERE ctime < '$last_log'");
                # if (!$sth1->execute) {die "Error:" . $sth1->errstr . "\n";}
                # }
                exit;

                Comment


                • #9
                  Puis ensuite ils disent de supprimer la ligne commencant par "-" dans cron/parsing_log.pl.rej . Mais la encoreje vois pas

                  Mon fichier cron/parsing_log.pl.rej :

                  ***************
                  *** 30,36 ****
                  use vars qw($mysql_user $mysql_passwd $mysql_host $mysql_database_oreon $mysql_database_ods $opt_h $opt_a $data);

                  my $installedPath = "@[email protected]";
                  - #my $installedPath = "/usr/local/oreon";
                  require $installedPath."/ODS/etc/conf.pm";

                  ## Init Date
                  --- 30,35 ----
                  use vars qw($mysql_user $mysql_passwd $mysql_host $mysql_database_oreon $mysql_database_ods $opt_h $opt_a $data);

                  my $installedPath = "@[email protected]";
                  require $installedPath."/ODS/etc/conf.pm";

                  ## Init Date

                  Comment


                  • #10
                    Supprime la ligne #my $installedPath = "/usr/local/oreon";
                    Oreon 1.4
                    Nagios 2.9
                    RRDTool 1.2.18

                    Comment


                    • #11
                      Ca c'est pour cron/parsing_log.pl.rej ou cron/parsing_log.pl ou encore les deux ?

                      A mon avis je dirai les deux, nan ?:roll: Et une fois cela fait il faut relancer l'installe du patch ?

                      Désolé de poser tant de questions qui peuvent paraître bêtes mais j'en suis à ma 4eme tentative d'installe d'oréon en 2 semaines

                      Comment


                      • #12
                        4 en 2 semaines dit toi que pour moi c'etait un rythme tranquille lors de mes debuts....courage!
                        Il faut juste supprimer la ligne dans cron/parsing_log.pl le fichier rej n'est la que pour te montrer ce qui n'a pas fonctionne dans le patch pour que tu le fasse a sa place. Donc pas besoin de reinstaller le patch ensuite puisque tu viens de faire ce qu'il faisait. Une fois que t'as finit tu peux supprimer le .rej
                        Oreon 1.4
                        Nagios 2.9
                        RRDTool 1.2.18

                        Comment


                        • #13
                          Oki merci beaucoup !

                          Ne t'en fait pas je désespère pas ;-) Mais c'est vrai que par moment à force de bidouiller à gauche à droite je suis perdu :lol: mais bon j'essaye de comprendre. Lorsque j'ai eu pour projet d'installer nagios et oreon sur kubuntu je ne connaissais que très très peu les commandes unix, mais grâce à internet j'ai vite appris. Me dit que pour oréon me faut un peu plus de temps encore

                          Et merci grâce à toi j'ai compris l'utilité du fichier cron/parsing_log.pl.rej

                          Comment

                          Working...
                          X