On 1/5/07, "Elídier Moya R." <[EMAIL PROTECTED]> wrote:

Actualmente estoy utilizando Debian Sarge con el Kernel 2.6.10.
Realmente me tiene intrigado, porque si ejecuto tu script o el mío desde
la consola todo funciona bien.

Esto quiere decir que posiblemente el ambiente en el que se ejecuta el
script es diferente.  Podés agregarle esto al inicio al script, luego
de la línea "set -e"

set -v
set -x

Eso va a causar que se impriman los comandos y la expansión de esos
comandos.  No recuerdo en este momento si eso se envía a stdout o
stderr.  Si es el primer caso entonces van a aparecer líneas nuevas en
el correo que estás mandando.  Si es el segundo caso cron te va a
enviar un correo ya sea a vos o a root (dependiendo de quien esté
ejecutando el script) con la salida de esos comandos.

Otra cosa que podés hacer es agregarle el comando:

set

al inicio del script.  Eso va a imprimir todas las variables de
ambiente que estén activas.  Podés comaparar la salida cuando corre en
el cron y cuando lo corrés a mano.  Es más, intentá con este script:

#!/bin/sh
set -e
set -x
set -v
set
echo "El próximo tape que Amanda espera es:"
amadmin DailySet1 tape
echo
exit 0

y lo instalás en el cron así:

55 7 * * 1-5 ~/bin/mandar-recordatorio &> ~/cron.log

(es una sola línea).

Así recibís en el correo toda la salida.  Luego lo corrés a mano:

$ ~/bin/mandar-recordatorio &> recordatorio.log

Y comparás las dos cosas con algo así:

$ diff -u -w recordatorio.log cron.log

Con eso podés ver las diferencias entre una corrida y la otra; algunas
cosas son normales, por ejemplo el número de proceso o la terminal
donde está corriendo.  Otras, tal vez el PATH, o alguna variable
relacionada con amanda son las que pueden estar causando el problema.

Marcelo

Responder a