Tengo un script que funciona cuando lo ejecuto desde la línea de comandos, pero cuando lo programo cronaparece errores que no puede encontrar archivos o comandos. Mi pregunta es doble:
Cuando programo un trabajo cron usando
crontab -e, ¿usa mi ID de usuario como base para sus permisos? ¿O utiliza una identificación de usuario cron de algún tipo y sus permisos relacionados?Cuando se inicia un trabajo cron, ¿cuál es el directorio de trabajo? ¿Es el directorio donde especifico el script para ejecutar, o un directorio diferente?
Aquí está mi trabajo cron:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Aquí está el guión real:
vIP_ADDR="`curl automation.whatismyip.com/n09230945.asp`"
echo "$vIP_ADDR"
sed "s/IPADDR/$vIP_ADDR/g" template.txt > emailmsg.txt
ssmtp XXXXX@gmail.com < emailmsg.txt
Estos son los errores que obtengo cuando veo el mailmensaje producido por cron:
sed: can't read template.txt: No such file or directory
/home/xxxx/Documents/Scripts/email_ip_script.sh: line 15: ssmtp: command not found
No puede encontrar el template.txtpero reside en el mismo directorio que el script. Tampoco puede ejecutarse ssmtp, pero puedo como mi usuario. ¿Qué me falta para que esto funcione correctamente?
crontendría el suyo propioPATHo puedo consultar a mi usuarioPATH? Configuré ssmtp para que tenga su propio permisousery creowheelque permitiría que cualquiera lo use (incluido cron). Si ayuda Im en CENTOS 6.2