J'ai une boucle foreach dans laquelle je teste si des fichiers de type fifo
existent.
Si le fichier existe, alors les données qu'il contient sont ajoutés dans une
base MySQL par la commande :
system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname)
&");
Si le fichier tyty n'existe pas, alors il est créé par la commande
"mkfifo", puis je mets mon drapeau $fifoCreated = 1.
Ensuite, en dehors du foreach, je teste si $fifoCreated ==1 alors je
relance syslog-ng.
Normalement, syslog-ng ajoute des logs dans mes fichiers fifos, hors mes
fichiers reste vides comme si ils avaient été créés après que syslog-ng ait
été relancé.
Voici la partie de code concernée.
my $fifoCreated = 0;
foreach my $dbname (@dblist) {
chomp($dbname);
$file = "/var/syslog-ng-pipe/".$dbname;
if (-e $file && -p $file) {
system ("(/usr/bin/mysql -e 'source
/var/syslog-ng-pipe/$dbname' $dbname) &");
} else {
system ("/usr/bin/mkfifo $file");
$fifoCreated = 1;
} # end if else
} #end foreach
if ($fifoCreated == 1) {
system ("(/etc/init.d/syslog-ng restart) ");
foreach my $dbname (@dblist) {
chomp($dbname);
system ("(/usr/bin/mysql -e 'source
/var/syslog-ng-pipe/$dbname' $dbname) &");
} #end foreach
} #enf if
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gerard Breiner
personne ne sait répondre à cela ? Je croyais pourtant qu'il y avait des experts.
Gérard "Gerard Breiner" a écrit dans le message de news:cl7ph4$u0t$
Bonjour,
J'ai une boucle foreach dans laquelle je teste si des fichiers de type fifo
existent. Si le fichier existe, alors les données qu'il contient sont ajoutés dans une
base MySQL par la commande : system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname) &"); Si le fichier tyty n'existe pas, alors il est créé par la commande "mkfifo", puis je mets mon drapeau $fifoCreated = 1. Ensuite, en dehors du foreach, je teste si $fifoCreated ==1 alors je relance syslog-ng. Normalement, syslog-ng ajoute des logs dans mes fichiers fifos, hors mes fichiers reste vides comme si ils avaient été créés après que syslog-ng ait
été relancé.
Voici la partie de code concernée.
my $fifoCreated = 0; foreach my $dbname (@dblist) { chomp($dbname); $file = "/var/syslog-ng-pipe/".$dbname; if (-e $file && -p $file) { system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname) &"); } else { system ("/usr/bin/mkfifo $file"); $fifoCreated = 1; } # end if else } #end foreach if ($fifoCreated == 1) { system ("(/etc/init.d/syslog-ng restart) "); foreach my $dbname (@dblist) { chomp($dbname); system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname) &"); } #end foreach } #enf if
personne ne sait répondre à cela ? Je croyais pourtant qu'il y avait des
experts.
Gérard
"Gerard Breiner" <gerard.breiner@ias.u-psud.fr> a écrit dans le message de
news:cl7ph4$u0t$1@upsn250.cri.u-psud.fr...
Bonjour,
J'ai une boucle foreach dans laquelle je teste si des fichiers de type
fifo
existent.
Si le fichier existe, alors les données qu'il contient sont ajoutés dans
une
base MySQL par la commande :
system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname)
&");
Si le fichier tyty n'existe pas, alors il est créé par la commande
"mkfifo", puis je mets mon drapeau $fifoCreated = 1.
Ensuite, en dehors du foreach, je teste si $fifoCreated ==1 alors je
relance syslog-ng.
Normalement, syslog-ng ajoute des logs dans mes fichiers fifos, hors mes
fichiers reste vides comme si ils avaient été créés après que syslog-ng
ait
été relancé.
Voici la partie de code concernée.
my $fifoCreated = 0;
foreach my $dbname (@dblist) {
chomp($dbname);
$file = "/var/syslog-ng-pipe/".$dbname;
if (-e $file && -p $file) {
system ("(/usr/bin/mysql -e 'source
/var/syslog-ng-pipe/$dbname' $dbname) &");
} else {
system ("/usr/bin/mkfifo $file");
$fifoCreated = 1;
} # end if else
} #end foreach
if ($fifoCreated == 1) {
system ("(/etc/init.d/syslog-ng restart) ");
foreach my $dbname (@dblist) {
chomp($dbname);
system ("(/usr/bin/mysql -e 'source
/var/syslog-ng-pipe/$dbname' $dbname) &");
} #end foreach
} #enf if
personne ne sait répondre à cela ? Je croyais pourtant qu'il y avait des experts.
Gérard "Gerard Breiner" a écrit dans le message de news:cl7ph4$u0t$
Bonjour,
J'ai une boucle foreach dans laquelle je teste si des fichiers de type fifo
existent. Si le fichier existe, alors les données qu'il contient sont ajoutés dans une
base MySQL par la commande : system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname) &"); Si le fichier tyty n'existe pas, alors il est créé par la commande "mkfifo", puis je mets mon drapeau $fifoCreated = 1. Ensuite, en dehors du foreach, je teste si $fifoCreated ==1 alors je relance syslog-ng. Normalement, syslog-ng ajoute des logs dans mes fichiers fifos, hors mes fichiers reste vides comme si ils avaient été créés après que syslog-ng ait
été relancé.
Voici la partie de code concernée.
my $fifoCreated = 0; foreach my $dbname (@dblist) { chomp($dbname); $file = "/var/syslog-ng-pipe/".$dbname; if (-e $file && -p $file) { system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname) &"); } else { system ("/usr/bin/mkfifo $file"); $fifoCreated = 1; } # end if else } #end foreach if ($fifoCreated == 1) { system ("(/etc/init.d/syslog-ng restart) "); foreach my $dbname (@dblist) { chomp($dbname); system ("(/usr/bin/mysql -e 'source /var/syslog-ng-pipe/$dbname' $dbname) &"); } #end foreach } #enf if