Soy un novato en Linux y estoy programando un pequeño script que coge los parámetros una tabla de MySQL y ejecuta un comando, lo que quiero hacer es ejecutar unos comandos con unos parámetros y saber si se han ejecutado correctamente y otros recoger la captura, tengo algo así:
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use constant DIRECTORIO => '/home/manolo/ficheros'
use constant PROGRAMA => '/home/manolo/leedat'
my $base_datos="estadisticas";
my $usuario="estadisticas";
my $clave="*****";
my $driver="mysql";
#Conectamos con la BD, si no podemos, ponemos un mensaje de error
my $dbh = DBI->connect("dbi:$driver:$base_datos",$usuario,$clave) || die "\nError al abrir la base datos: $DBI::errstr\n";
while (<>) {
my $pendientes = $dbh->("SELECT id, concepto FROM ventas WHERE tipo ='nueva'");
$pendientes->execute();
while ( @pendiente=$pendientes->fetchrow_array())
{
my $capturaUrl = `PROGRAMA --display :0 DIRECTORIO/pendiente[0].dat`;
if () { # Necesito saber si ha sido correcto o no. ! de true
my $hash = `md5sum DIRECTORIO/pendiente[0].dat`; # Cojo la primera columna ¿como lo hago?
my $pendiente = $dbh->("UPDATE ventas SET VALUES(etapa ='procesado',hash=$hash) WHERE id=$pendiente[0]");
$pendiente->finish();
}
}
#Realizamos la etapa de liberaci�n de recursos ocupados por la sentencia
$pendientes->finish();
}
#Nos desconectamos de la BD. Mostramos un mensaje si hay
#algun fallo
$dbh->disconnect || warn "\nFallo al desconectar.\nError: $DBI::errstr\n";
use strict;
use constant DIRECTORIO => '/home/manolo/ficheros'
use constant PROGRAMA => '/home/manolo/leedat'
my $base_datos="estadisticas";
my $usuario="estadisticas";
my $clave="*****";
my $driver="mysql";
#Conectamos con la BD, si no podemos, ponemos un mensaje de error
my $dbh = DBI->connect("dbi:$driver:$base_datos",$usuario,$clave) || die "\nError al abrir la base datos: $DBI::errstr\n";
while (<>) {
my $pendientes = $dbh->("SELECT id, concepto FROM ventas WHERE tipo ='nueva'");
$pendientes->execute();
while ( @pendiente=$pendientes->fetchrow_array())
{
my $capturaUrl = `PROGRAMA --display :0 DIRECTORIO/pendiente[0].dat`;
if () { # Necesito saber si ha sido correcto o no. ! de true
my $hash = `md5sum DIRECTORIO/pendiente[0].dat`; # Cojo la primera columna ¿como lo hago?
my $pendiente = $dbh->("UPDATE ventas SET VALUES(etapa ='procesado',hash=$hash) WHERE id=$pendiente[0]");
$pendiente->finish();
}
}
#Realizamos la etapa de liberaci�n de recursos ocupados por la sentencia
$pendientes->finish();
}
#Nos desconectamos de la BD. Mostramos un mensaje si hay
#algun fallo
$dbh->disconnect || warn "\nFallo al desconectar.\nError: $DBI::errstr\n";
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Soy muy novato en esto de Perl y estoy intentando aprender, me falla este programa por muchos sitios. ¿Utilizaría popen? ¿Alguien puede ayudarme? Muchas gracias.
Todo esto lo hago en script de consola y muy bien, pero en consola no puedo ejecutar comprobaciones en la base de datos y por eso quiero usar Perl.
Saludos de manolo
P.D: La lista de distribución esta muy muerta.