Problema con funcion qx()
Publicado: 2012-06-28 19:48 @866
Hola, comunidad.
Estoy realizando un script en Perl con agregados de bash, más precisamente con el comando find en este último, que me permite encontrar archivos de distintas extensiones y en un periodo de tiempo, para luego analizarlo en busca de malware.
El problema es que desde la consola al ejecutar el siguiente comando, por ejemplo,
lo ejecuta sin problemas y realiza la búsqueda de todos los archivos que tengan la extensión php o js que se hayan modificado en un periodo de un 1 día.
El problema resulta al llevar este comando con la función qx() para luego analizar la salida y trabajarlo con Perl, pues me arroja errores de sintaxis en bash.
Al ejecutar de esta manera, en Perl:
tengo el siguiente error sh: Syntax error: "(" unexpected
Entonces pensé en colocar doble barra diagonal:
tengo el siguiente error find: expresión no válida; se esperaba encontrar un «)» pero no hay ninguno.
¿Alguna ayuda?
Muchas gracias
Estoy realizando un script en Perl con agregados de bash, más precisamente con el comando find en este último, que me permite encontrar archivos de distintas extensiones y en un periodo de tiempo, para luego analizarlo en busca de malware.
El problema es que desde la consola al ejecutar el siguiente comando, por ejemplo,
Using bash Syntax Highlighting
- find /home/user/www/ -type f \( -iname "*.php" -o -iname "*.js" \) -mtime -1 -ls
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
lo ejecuta sin problemas y realiza la búsqueda de todos los archivos que tengan la extensión php o js que se hayan modificado en un periodo de un 1 día.
El problema resulta al llevar este comando con la función qx() para luego analizar la salida y trabajarlo con Perl, pues me arroja errores de sintaxis en bash.
Al ejecutar de esta manera, en Perl:
Using perl Syntax Highlighting
- @files=qx(find /home/ -type f \( -iname "*.php" -o -iname "*.js"\) -mtime -$t -ls );
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
tengo el siguiente error sh: Syntax error: "(" unexpected
Entonces pensé en colocar doble barra diagonal:
Using perl Syntax Highlighting
- @files=qx(find /home/ -type f \( -iname "*.php" -o -iname "*.js"\) -mtime -$t -ls | awk '{print \$8 ":" \$9":" \$11}');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
tengo el siguiente error find: expresión no válida; se esperaba encontrar un «)» pero no hay ninguno.
¿Alguna ayuda?
Muchas gracias