Ejecutar un script todos los días usando un cronjob

9

Necesito el código exacto que usaría porque no puedo resolverlo. Solía crontab -econfigurar un trabajo cron pero cuando lo guardo, nunca funciona. También estoy tratando de ejecutar un archivo llamado newmail.shdesde el usuario root.

user219706
fuente
¿Has encontrado la respuesta a tu pregunta?
bendaf

Respuestas:

10

Si desea que la tarea se ejecute todos los días a las 3:17 p.m., usaría:

17 15 * * * root newmail.sh

Esto dice "ejecutar newmail.sh como root todos los días de la semana, todos los días del mes, todos los meses a las 3:17 pm".

minuto hora dom mes dow usuario cmd

minuto: controla en qué minuto de la hora se ejecutará el comando y se encuentra entre '0' y '59'

hora: controla en qué hora se ejecutará el comando y se especifica en el reloj de 24 horas, los valores deben estar entre 0 y 23 (0 es medianoche)

dom: este es el día del mes en el que desea que se ejecute el comando, por ejemplo, para ejecutar un comando el día 19 de cada mes, el dom sería 19.

mes Este es el mes en el que se ejecutará un comando especificado, puede especificarse numéricamente (0-12) o como el nombre del mes (por ejemplo, mayo)

dow: este es el día de la semana en el que desea que se ejecute un comando, también puede ser numérico (0-7) o como el nombre del día (por ejemplo, sol).

usuario: este es el usuario que ejecuta el comando.

cmd: este es el comando que desea ejecutar. Este campo puede contener múltiples palabras o espacios.

de: http://www.unixgeeks.org/security/newbie/unix/cron-1.html

dm78
fuente
en ubuntu 16 y posterior el nuevo formato es: "mh dom mon dow command"
bendaf el
en Ubuntu 19 el minuto es primero. Además, le advierte sobre el tiempo incorrecto.
kelalaka hace
5
sudo crontab -e

Agregue estas líneas al final del archivo

*/1 * * * * wget -O /dev/null  project_crone_URL

(Ejecute cron por una vez en 1 minuto)

0 0 * * * wget -O /dev/null  project_crone_URL

(Ejecute cron por una vez en 24 horas)

guardar el archivo

Inicie crontab con este comando

sudo /etc/init.d/cron start

Detener crontab con este comando

sudo /etc/init.d/cron stop

Reinicia crontab con este comando

sudo /etc/init.d/cron restart
Raman Singh
fuente
1

Si utiliza crontab -edesde Ubuntu 16.0+ no tendrá el campo de usuario, por lo que el formato correcto es:

17 15 * * * newmail.sh

Esto dice "ejecutar newmail.sh todos los días de la semana, todos los días del mes, todos los meses a las 3:17 pm".

Otras formas en que la respuesta de dm78 es correcta y contiene la descripción exacta del formato.

Además, si algo sale mal y tiene un sistema de correo instalado, le enviará un mensaje. Para más información mira esta respuesta

Si está interesado en iniciar sesión en cronjobs, puede usar esta respuesta .

bendaf
fuente
1
Depende de qué crontab edites. La crontab -emanivela no tiene un campo de usuario (como usted dice correctamente) pero el archivo /etc/crontab(el llamado sistema de crontab) y los archivos por debajo de /etc/cron.d hacer tener un campo de usuario.
PerlDuck el