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
davy.ai
Hay algunos problemas potenciales que podrían estar causando este problema. Aquí hay algunas cosas para verificar:
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.
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.
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.