linux - instalar - webmin español
¿Cómo reviso un módulo Apache instalado en Perl? (2)
Estoy escribiendo un script de Perl para verificar y ver si un módulo está actualmente instalado para Apache. En Bash, usaría:
# httpd -M | grep fcgid
Syntax OK
fcgid_module (shared)
Quiero que esto devuelva un valor de VERDADERO si ese módulo existe y FALSO si no es así. Sin embargo, me encuentro con un problema, porque httpd -M siempre muestra "Sintaxis correcta".
Esto es lo que tengo hasta ahora:
#!/usr/bin/perl
my $FCGID = "";
if (`httpd -M | grep fcgid`) {
$FCGID = "enabled"
} else {
$FCGID = "disabled"
}
El IF siempre se evalúa como verdadero sin embargo.
Acerca de mi configuración:
x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS release 6.2 (Final)
# httpd -v
Server version: Apache/2.2.15 (Unix)
# perl -v
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
Abierto a sugerencias. Soy bastante nuevo en Perl y todavía soy un poco nuevo en Bash scripting.
perl 2>/dev/null -le ''my @list = qx(httpd -D DUMP_MODULES ); print "FCGI found" if ( grep { $_ =~ /fcgi/ } @list ) ''
Resulta que solo necesito redirigir la salida y estaba confundido acerca de cómo hacer eso.
$ httpd -M 2> /dev/null | grep fcgid_module
fcgid_module (shared)
Entonces en PERL, puedo evaluar esa expresión BASH y guardarla en una variable y probarla contra la variable en la declaración IF.
my $FCGI = "";
my $FCGI_mod = `httpd -M 2> /dev/null | grep fcgid_module`;
if ( $FCGI_mod eq "" ) {
$FCGI = "disabled"
} else {
$FCGI = "enabled"
}
No es el más bonito, pero hace lo que necesito.
¡Gracias a quienes lo investigaron!