Problema al ejecutar un script

Hola

Tengo un script que en la instancia de desarrollo funciona bárbaro. El problema aparece cuando lo llevo al servidor y lo configuro.

Este script, lo que hace es enviar mails luego de evaluar si las pasantías registradas están próximas a vencer. La idea es que una vez que logre que funcione, incluirlo en el cron del servidor.

El script dice lo siguiente:

#!/bin/bash

export toba_dir=/usr/local/unpsjb/contrato/toba
export toba_instancia=produccion
export toba_proyecto=contratos
export PATH=“$toba_dir/bin”
toba item ejecutar -u toba -p contratos -t 288000146 >/usr/local/unpsjb/contrato/aplicacion/temp/salida.log

El error al ejecutarlo dice:
/usr/local/unpsjb/contrato/toba/bin/toba: 6: dirname: not found
/usr/local/unpsjb/contrato/toba/bin/toba: 8: dirname: not found
/usr/local/unpsjb/contrato/toba/bin/toba: 10: php: not found

Adjunto el toba.conf del sistema

No puedo encontrar que estoy haciendo mal …!!!

Gracias

Marcela


toba.txt (1.73 KB)

Hola Marcela

Probastes poniendo las variables con mayúsculas?
TOBA_DIR

Emilio

Emilio gracias x responder!!!

Probe todas las variables con mayúscula y obtengo el mismo error.

Marcela

Creo que le estás errando con el PATH
PATH=$PATH:$TOBA_DIR/bin

otra que puede ser
toba item ejecutar
por
./toba item ejecutar.

como para tirar ideas

Cambiando el formato del PATH, sigue sin funcionar, pero ahora es distinto, surge un mensaje en el archivo salida.log.

INFO_INSTANCIA: No se encuentra definido el archivo de inicializacion de la INSTANCIA: ‘produccion’ (‘/usr/local/unpsjb/contrato/toba/instalacion/i__produccion/instancia.ini’)

Hola Marcela

Supongo que el archivo en ese path existe.
El que ejecuta la tarea tiene permisos para leer el directorio?

Emilio

Hola gente …

Solucione parcialmente el problema. El script tal cual lo presente al comienzo de este hilo, solo funciona en la instancia de desarrollo, no en producción. El archivo script_enviar_mail se encuentra ubicado en la carpeta aplicación del sistema.

Comente todas las lineas export y copie la carpeta i__producción, los archivos bases.ini, instalacion.ini, toba.conf en ../toba/instalacion, solo así logre que funcione en producción.

Se podría realizar de otra manera, sin copiar esas carpetas y archivos???

El script final quedo así:

#!/bin/bash

#export toba_dir=/usr/local/unpsjb/contrato/toba
#export toba_instancia=produccion
#export toba_proyecto=contratos
#export PATH=$PATH:/usr/local/unpsjb/contrato/toba/bin
/usr/local/unpsjb/contrato/toba/bin/toba item ejecutar -u toba -p contratos -i produccion -t 288000146 >/usr/local/unpsjb/contrato/aplicacion/temp/salida.log

Gracias x la ayuda brindada …!!!

Marcela

Hola Marcela,

creo que en el primer script te falto definir la variable de entorno ‘TOBA_INSTALACION_DIR’ ya que en produccion el directorio de instalacion, no necesariamente se encuentra dentro del directorio de toba. Con eso no necesitabas copiar ninguna carpeta.

Por otro lado, salvo que tengas una extension del comando del item… el modificador -u toba, no agrega nada ya que no hay usuario para la consola.

Saludos