Había establecido un trabajo cron:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
El principal problema es que a la hora programada, hay un error: "el correo se ha enviado a / var / spool / mail / lucky".
El contenido de myfile.sh es:
mkdir jh
cd jh
Respuestas:
Esto no está bien para un script que se configura como un trabajo cron:
Debe proporcionar la ruta completa donde
jh
debe crearse el directorio. Además, en esta ruta debe tener permiso para crear nuevos archivos / directorios.Por ejemplo, su script debería verse así:
Tampoco
/usr/bin/sh
es el camino correcto parash
. El camino correcto es/bin/sh
. Puede verificar esto con elwhereis sh
comando. Y aun así, su trabajo cron debería verse así:No olvide hacer que el script sea ejecutable:
fuente
La ruta donde parece estar creando la carpeta es
/
. Esto se debe a quecrontab
requiere la ruta completa a la carpeta y los archivos en todos los archivos que ejecuta.Entonces la ruta en myfile.sh debería ser
mkdir <absolutePath>/jh
cd <absolutePath>/jh
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Esta línea es correcta, aunque debe verificar la ruta para ver si sh existe en / usr / bin / sh o no (usewhich sh
para ver la ruta donde existe sh; la mía era / bin / sh)Si tiene prisa por comenzar a escribir crontab, este enlace tiene muy buenos ejemplos
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
fuente