Las tareas programadas en Linux pueden ayudarte y facilitarte a la hora de realizar muchas acciones como:
- Realizar unas tareas programadas en un servidor Linux
- Configurar unas tareas de actualización automáticamente
- Configurar una tarea que envíe un mailing sin necesidad de tener que hacerlo manualmente
- Configurar una copia de seguridad automática
En este artículo te explicamos como puedes programar estas tareas programadas y muchas mas, a través de un cron.
Programar tareas programadas en Linux con CRON
Para comenzar a editar un cron, lo primero que deberemos de hacer es ejecutar el siguiente comando según el usuario que queremos modificar.
Para modificar los cron del usuario al que estás conectado:
crontab -e
Para modificar los cron de un usuario específico:
crontab -eu usuario
Una vez escrito, debemos de rellenarlo de la siguiente manera:
Tenemos que poner primero los 5 números, en el cual declararemos aspectos como: la hora, el día o los días de la semana.
- El primer número, será el minuto.
- El segundo número, sera la hora.
- El tercer número, será el día.
- El cuarto número, será mes.
- El quinto número, será el día de la semana.
0 Domingo – 1 Lunes – 2 Martes – 3 Miércoles – 4 Jueves – 5 Viernes – 6 Sábado – 7 Domingo
*Después de cada número, hay que separarlos con un espacio » »
Una vez configurado a nuestro gusto, tendremos que seleccionar el script a ejecutar.
Ejemplos configuración script con CRON
0 2 * * * script_a_ejecutar.pl
Este comando, quiere decir que en el minuto 0, a las 2, todos los días del mes, todos los meses, todos los días de la semana, quiero ejecutar el script.
En caso de por ejemplo, querer ejecutar un .PHP por ejemplo, deberemos de configurar los días y hora de la ejecución, y después, indicarle la ruta de instalación del PHP y junto con un espacio, el .PHP a ejecutar.
0 0 * 12,1 * /usr/bin/php /ruta/del/fichero/fichero.php
Esto quiere decir, que: En el minuto 0, a las 0 horas, todos los días, durante los meses 12 y 1, todos los días de la semana quiero ejecutar el siguiente .PHP
También, puedes poner para que se ejecute cada x horas ó minutos.
0 */3 * * * ejecutar.pl (esto se ejecutaría cada 3 horas)
*/90 * * * * ejecutar.pl (esto se ejecuta cada 1 hora 30 minutos con el */90 (90 minutos = 1:30))
Si después de esta explicación sobre como configurar un cron sigues teniendo dudas o necesitas alguna aclaración, no dudes en ponerte en contacto con nosotros.
Comentarios (12)
Jesús Marco
Hola Beth,
Gracias por el comentario.
Para realizar una tarea programada tal y como nos indicas me temo que deberás poner todos los datos a mano, por ejemplo, si quisiera que se ejecutara tal y como dices desde el día 30 de marzo a las 15:20 y teniendo en cuenta la información indicada en articulo, quedaría un cron así:
20 15 7 4 * «Comando a ejecutar»
Beth
Si requiero que mi tarea se ejecute en la hora actual pero 8 dias despues ¿como quedaria?
Diego Melús
Hola Fredy,
Justo después de indicar cada cuanto tiempo se tiene que ejecutar hay que indicarle lo siguiente, en este caso se va a descargar el archivo todos los días a las 2:
0 2 * * * wget http://dominio . tld/fichero
En este caso hay que tener cuidado ya que el directorio del usuario se te va a llenar todo el rato.
En caso de que sea solo para hacer una llamada a una URL:
0 2 * * * /usr/bin/wget -q -O /dev/null http://dominio . tld/
Indicando la URL completa
¡Gracias por tu comentario!
fredy
yo deseo hacer una tarea que me permita descargar un archivo desde un link de una pagina web, como lo aria? ayuda
Soporte nerion
Hola Raul,
¡Te agradecemos mucho tu comentario y tu aportación!
Te invitamos a seguir leyendo artículos de nuestra base de soporte y ayuda por si te pueden servir de ayuda. Y conocer alguno de nuestros productos de dominios, hosting, cloud, correo o seguridad.
Un saludo,
RPF
Hola:
Me ha gustado mucho el artículo, enhorabuena 🙂 . Yo publiqué un artículo en mi blog para aprender a usar Cron/Crontab con algunos ejemplos. Dejo la URL por si es útil para otros visitantes.
https://www.raulprietofernandez.net/blog/gnu-linux/como-programar-tareas-en-gnu-linux
Saludos! 😀
Soporte nerion
Hola Miguel,
En el fichero crontab tiene que poner: */5 * * * * find . -type f -name “miguel.php” -delete {} \;
Muchas gracias por tu comentario!
miguel bernardo
Buenas tengo el siguiente cron en cpanel para borrar un archivo cada 5 minutos pero se ejecuta una sola vez , puedes ayudarme
find . -type f -name “miguel.php” -delete {} \;
Soporte nerion
Hola René,
Muchas gracias por tu comentario, esperamos ayudarte en más ocasiones con otros artículos 🙂
René
Hola, gracias por el contenido!
nerion networks
Hola Byron,
En ese caso puedes hacerlo con dos cron, uno para hacer el copiado de la información y el otro para hacer el borrado pasado el tiempo deseado.
Nosotros te recomendamos que los logs que almacenes los comprimas, para así no ocupar tanto espacio.
Esperamos puedas solventarlo de la mejor manera posible.
Un saludo!
Byron
hola deseo me ayudes, tengo un directorio en el que se almacena informacion cada hora de los eventos del sistema, esta informacion debe copiarla a otro directorio todos los dias a las 12am, y mantener esta informacion en este nuevo directorio solo 4 meses, con el fin de que este directorio no almacene informacion mas de 4 meses. Similar a una fifo, el primero en almacenarse el primero al borrarse a los 4 meses.
Les agradeceria su ayuda