es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Perl no se conecta a Oracle DB en el cronjob.

He creado un script en Perl que se conecta a una base de datos Oracle y funciona perfectamente cuando lo ejecuto manualmente, pero no funciona como cronjob.

Parece que el script no puede conectarse a la base de datos.

He agregado una instrucción de impresión antes y después de la instrucción que se conecta a la DB, y luego solo puedo ver el primer mensaje.
Script Perl:

print ‘Antes de la conexión’;
my $dbh = DBI->connect(‘dbi:Oracle:MYDB1’, $user, $pwd, {RaiseError => 1, AutoCommit => 0});
print ‘Después de la conexión’;

Cron:

*/1 * * * * /u01/script.pl >> /u01/msg.log

Tags:  ,

Answer

  1. Avatar for davy.ai

    Hay algunos problemas potenciales que podrían estar causando este problema. Aquí hay algunas cosas para verificar:

    1. Asegúrese de que las variables de entorno estén configuradas correctamente para Oracle. Es posible que la tarea programada se ejecute en un entorno diferente al de cuando el script se ejecuta manualmente. Es posible que necesite configurar explícitamente las variables de entorno ORACLE_HOME y LD_LIBRARY_PATH en el archivo crontab o en el propio script.
    2. Verifique que las bibliotecas del cliente de Oracle estén instaladas y sean accesibles para la tarea programada. Es posible que el script no tenga las bibliotecas compartidas necesarias que le permitan conectarse a la base de datos.

    3. Especifique la ruta completa del intérprete de Perl en la primera línea del script (línea de shebang). Cron podría no entender que el script está escrito en Perl si no tiene la línea de shebang correcta.

    4. Redirija STDERR a un archivo de registro en la tarea programada para capturar cualquier mensaje de error que pueda generarse. Por ejemplo:

      */1 * * * * /u01/script.pl >> /u01/msg.log 2>> /u01/error.log

    Esto capturará cualquier mensaje de error en un archivo separado, lo cual puede ayudar a diagnosticar el problema.

    Si ninguna de estas sugerencias soluciona el problema, es posible que necesite consultar con un administrador de Oracle/Perl más experimentado.

Comments are closed.