
Bienvenidos a este capítulo del Curso de Linux para Hackers – El Comando Cron. Comparte este articulo y síguenos para recibir más capítulos y cursos gratis.
Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.
En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.
Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Conceptos que aprenderás en esta sección:
- Introducción al demonio
cron
y su utilidad: qué escron
y cómo automatiza tareas en segundo plano de forma recurrente. - Uso de
crontab
para configurar trabajos encron
: cómo listar, editar, eliminar y programar trabajos recurrentes encron
. - Tipos de archivos de configuración de
cron
: archivos de configuración para tareas de usuario y del sistema. - Sintaxis de
crontab
para programar tareas: estructura de programación para tareas recurrentes. - Ejemplos prácticos de
cron
: configuraciones comunes para programar tareas en intervalos específicos. - Redirección de salida en
cron
: cómo gestionar la salida y errores de tareas en archivos de registro.
El Comando Cron
El cron se puede definir como una utilidad de software proporcionada por un sistema operativo similar a Linux que ejecuta la operación programada en un período predeterminado. Es un proceso demonio y se ejecuta como un proceso en segundo plano. Realiza las tareas descritas en un período predefinido cuando se encuentra una condición o un evento sin intervención del usuario.
Con frecuencia, lidiar con cualquier operación repetida es una tarea tediosa para un administrador de sistemas. Por lo tanto, el administrador de sistemas puede programar este tipo de procesos para que se ejecuten en segundo plano automáticamente a intervalos de tiempo regulares haciendo una lista de los comandos con la ayuda del comando cron.
Permite a todos los usuarios ejecutar la operación programada de forma regular, como hacer una copia de seguridad todos los días, sincronizar archivos en algunos intervalos regulares y programar actualizaciones semanalmente.
De forma recurrente, Cron inspecciona la tarea programada y cuando los campos de tiempo programado coinciden con los campos de tiempo actual, se ejecutarán los comandos programados. Automáticamente, se inicia desde el archivo /etc/init.d al ingresar a niveles de ejecución multiusuario.
Introducción al comando Crontab en Linux
El comando Crontab lista, edita, elimina o envía trabajos cron. Los trabajos cron son comandos que ejecuta el demonio cron a intervalos programados de forma regular. Necesitamos especificar el comando, es decir, crontab, con el indicador, es decir, -e, para finalizar cualquier trabajo cron. El comando crontab conjura una sesión de edición que nos permite establecer un archivo crontab. Creamos entradas para todos los trabajos cron en este archivo. Todas las entradas deben estar en un formato adecuado para el demonio cron.
El comando crontab copia las entradas en el directorio, es decir, /var/spool/cron/crontabs, y las coloca dentro de un nombre de archivo para nuestro nombre de usuario actual cuando terminamos de establecer las entradas y salimos del archivo. Alternativamente, podemos establecer un archivo crontab describiendo el parámetro de archivo. El archivo debe estar en el formato que el demonio cron espera si existe. El comando crontab conjura el editor si no existe. El comando conjura el editor que describe si la variable de entorno EDITOR está disponible. De lo contrario, el comando crontab utiliza el editor vi.
- Necesitamos describir el comando crontab junto con el indicador -l para listar el contenido de nuestro archivo crontab.
- Podemos usar la bandera -r para eliminar un archivo existente.
- El parámetro Nombre de usuario (opcional) puede ser aplicado por el propietario del archivo crontab o por el usuario raíz para verificar, eliminar, enumerar o editar el estado del trabajo cron para el usuario definido.
- Se genera un mensaje de error y el programa sale si el nombre de usuario no es válido.
- Si no se especifica el parámetro Nombre de usuario (opcional), los indicadores crontab están presentes para el usuario actual y el usuario raíz.
- El crontab es un conjunto de comandos que deseamos ejecutar según un cronograma regular.
- El nombre del comando también se utiliza para organizar esa lista.
La forma completa de crontab es «tabla cron» porque utiliza el programador de tareas cron para ejecutar tareas; cron en sí se llama así por «chronos». Cron es el proceso del sistema que realizará tareas automáticamente para nosotros de acuerdo con un cronograma fijo. Este cronograma se conoce como crontab, que es el nombre del programa que se utiliza para modificar dicho cronograma.
¿Por qué utilizamos Cron Jobs?
Las siguientes son algunas razones para utilizar trabajos cron en Linux:
- Los trabajos cron se utilizan para automatizar el mantenimiento del sistema.
- Crontab es una opción perfecta para automatizar trabajos Unix.
- Los datos almacenados en caché se limpian periódicamente.
- Envió correos electrónicos de notificación, como correos electrónicos de expiración de contraseña, boletines informativos, etc.
- Purgar y archivar tablas de bases de datos
- Eliminar archivos de registro antiguos
- Ayuda al sistema operativo a realizar una copia de seguridad programada de la base de datos o de los archivos de registro.
Tipos de archivos de configuración de Cron
Los siguientes son los tipos de archivos de configuración de cron:
- El usuario Crontab
puede instalar sus trabajos cron con la ayuda del comando crontab. Todos los usuarios pueden tener su archivo crontab, y por lo tanto estos son archivos en crontabs /var/spool/cron/; no suelen editarse directamente. Podemos usar el comando crontab para editar y configurar nuestros trabajos cron. - El crontab del sistema Linux/Unix
requiere privilegios sudo porque se utiliza para trabajos críticos y servicios del sistema. Proporciona la capacidad de ejecutar comandos como usuario en el crontab del sistema.
Sintaxis básica de Crontab
Cron lee todos los archivos de configuración de la lista de comandos que se van a ejecutar. El demonio aplica una sintaxis particular para interpretar las líneas dentro de las tablas de configuración de crontab.
La crontab («tabla cron») es una lista de comandos para ejecutar las operaciones programadas en un momento determinado. Permite al usuario agregar, eliminar o modificar las operaciones programadas.
La sintaxis del comando crontab contiene seis partes separadas por un espacio en el que las primeras cinco partes ilustran el tiempo para ejecutar la operación y la última parte ilustra el comando.
Minuto (contiene los valores de 0 a 59).
Hora (contiene los valores de 0 a 23).
Día del mes (contiene los valores del 1 al 31).
El mes del año (contiene los valores de enero a diciembre o del 1 al 12, se aplicarán las tres letras iniciales del nombre del mes).
Día de la semana (alberga los valores de Dom a Sáb o de 0 a 6, se aplicarán las tres letras iniciales del día).
El crontab de Linux contiene seis campos diferentes. Los cinco campos iniciales especifican la fecha y la hora de ejecución, y el último se utiliza para la ejecución de comandos.
Sintaxis de crontab
[Minuto] [Hora] [Día_del_Mes] [Día_del_Año] [Día_de_la_Semana] [Comando]
Sintaxis:
cron [-f] [-1] [-L nivel de registro]
Opciones en el comando Cron
- -f: Esta opción se utiliza para permanecer en modo de primer plano y no realiza ninguna función de «daemonía».
- -1: Esta opción habilitará los nombres de los archivos compatibles con LSB, es decir, /etc/cron.d.
- -n: Esta opción se utiliza para agregar los FQDN dentro del asunto al transferir correos.
- -L loglevel: Le informará al cron qué registrar de las tareas utilizando unos valores que se mencionan a continuación:
- Este valor registrará el comienzo de cada tarea cron.
- Este valor registrará la finalización de cada tarea cron.
- Este valor registrará cada tarea fallida y el estado de salida no será equivalente a cero.
- Este valor registrará el número de proceso de cada tarea cron.
Las siguientes son algunas reglas que definen el campo de formato de fecha y hora:
- Si uno de los cinco campos está fijado con un símbolo de asterisco (*), este representa el valor de cada campo. Por ejemplo, podemos poner el símbolo de asterisco (*) para ejecutar el comando diariamente en el campo de la semana.
- También podemos aplicar el rango de números separados por un símbolo de guion (-) en el campo de fecha y hora para incluir varios valores contiguos, pero no cada valor de campo. Por ejemplo, podemos aplicar el 7-10 para ejecutar cualquier comando de julio a octubre.
- El operador de coma (,) se utiliza para incluir la lista de números que pueden ser consecutivos o no. Por ejemplo, «1, 3, 5» en el campo de la semana significa que el comando se ejecutará todos los lunes, miércoles y viernes.
- El carácter de barra (/) se agrega para omitir los valores de los números proporcionados. Por ejemplo, «*/4» en el campo de la hora define «cada 4 horas» y es igual a los números 0, 4, 8, 12, 16, 20.
Permitir a los usuarios ejecutar las tareas cron:
El usuario debe estar incluido en este archivo para poder ejecutar las tareas cron cuando el archivo esté disponible:
/etc/cron.allow
En caso de que el archivo, es decir, /etc/cron.allow no exista, pero sí exista el archivo, es decir, cron.deny, un usuario no debe estar incluido dentro de este archivo para poder ejecutar la tarea cron.
/etc/cron.deny
Importante: En caso de que ninguno de los archivos anteriores esté disponible, solo el administrador del sistema (superusuario) tendrá permiso para utilizar el comando proporcionado.
Comando para ejecutar
Define el comando a ejecutar. Ilustra el nombre de archivo o directorio exacto de los comandos o scripts que deseamos que cron ejecute.
A continuación se menciona un ejemplo:
/root/backup.sh
El comando anterior examina el directorio raíz del sistema y ejecuta el script, es decir, backup.sh. Podemos definir cualquier comando o script que queramos.
Salida (opcional)
De forma predeterminada, cron envía un correo electrónico al propietario del archivo crontab cuando se ejecuta. Es una forma eficiente de mantener un registro de las operaciones. Recuerde que las operaciones menores o habituales pueden llenar rápidamente nuestra bandeja de entrada.
Podemos evitar este escenario deteniendo el envío de un correo electrónico porque es un aspecto opcional.
Para desactivar la salida del correo electrónico, podemos incluir la cadena, es decir, >/dev/null 2>&1 después de los campos de comando y tiempo.
Configuración de la operación Cron
Necesitamos abrir crontab junto con un editor de texto para configurar la operación cron e ingresar la sintaxis del comando que deseamos ejecutar.
Edición de un archivo crontab
Necesitamos escribir un comando en nuestra ventana de terminal para abrir el archivo de configuración de crontab para un usuario actual. El comando se menciona a continuación:
crontab-e

Podemos incluir cualquier operación programada, una por línea.
Guarde ese archivo y luego salga una vez que hayamos terminado de incluir operaciones. El demonio de cron leerá y ejecutará las instrucciones proporcionadas.
Nota: No es necesario reiniciar Cron para aplicar las modificaciones.
Edición de crontab para un usuario distinto
Podemos introducir un comando para editar un crontab para un usuario específico. El comando se menciona a continuación:
crontab -u other_username -e
Hay algunos puntos que se deben tener en cuenta al trabajar con cron. Estos puntos se mencionan a continuación:
- Tener el control de la versión fuente para rastrear y mantener las modificaciones a las expresiones de cron.
- Organice todas las operaciones programadas en función de su frecuencia o importancia y agrúpelas según su tiempo o rango de acción.
- Verifique las operaciones programadas incluyendo inicialmente una frecuencia alta.
- No escriba directamente código típico ni varias redirecciones y canalizaciones en la expresión de cron. En lugar de eso, escríbalos para programar un script y un script en crontab.
- Aplique alias si se repiten conjuntos de comandos similares con frecuencia.
- Ignore la ejecución de scripts o comandos utilizando cron como superusuario.
Cadena única de Crontab
Podemos utilizar ocho cadenas únicas proporcionadas por crontab. No solo nos ahorrará tiempo, sino que también aumentará la legibilidad.
Unique String | Explicación |
@reboot | Después del inicio, ejecutar una vez. |
@yearly | Ejecutar una vez al año, es decir, 0 0 1 1 * |
@annually | Es lo mismo que @yearly. |
@monthly | Ejecutar una vez al mes, es decir, 0 0 1 * * |
@weekly | Ejecutar una vez a la semana, es decir, 0 0 * * 0 |
@daily | Ejecutar una vez al día, es decir, 0 0 * * * |
@midnight | Es lo mismo que @daily. |
@hourly | Se ejecuta una vez por hora, es decir, 0 * * * * |
Directorio Cron
Un administrador del sistema puede utilizar una programación cron para todo el sistema, que recae en el directorio cron predefinido, como se muestra a continuación:
- /etc/cron.weekly
- /etc/cron.monthly
- /etc/cron.hourly
- /etc/cron.daily
- /etc/cron.d
Cómo modificar o agregar crontab
El usuario puede modificar sus trabajos crontab utilizando el siguiente comando:
crontab -u -e
Este comando abre la configuración crontab personal de nuestro sistema informático, que puede modificarse con nuestro editor de texto predeterminado.
No necesitamos reiniciar nuestro crontab porque recogerá automáticamente nuestras modificaciones cuando usemos el siguiente comando:
crontab -l
Podemos usar el siguiente comando crontab para eliminar nuestras tareas crontab:
crontab -r
Podemos usar el siguiente comando crontab para actualizar o agregar trabajos en crontab:
crontab -e
Podemos usar el siguiente comando crontab para editar el crontab de otros usuarios:
crontab -u nombre de usuario -e
Lista de crontab
Podemos usar el siguiente comando crontab para ver las entradas crontab del usuario:
crontab -l
Podemos usar el siguiente comando crontab para ver las entradas crontab de un usuario específico:
crontab -u nombre de usuario -l
Ejemplos de operaciones Cron
Podemos utilizar el símbolo para especificar cada valor al describir las operaciones. Al introducir un valor dentro de cualquier campo, solo se ejecuta el comando sobre ese valor.
Por ejemplo:
* 2 0 * 4 /root/backup.sh
Solo se ejecuta si el primer día de un mes (0) cae en miércoles (4), aunque esté configurado para ejecutarse a las 2 a. m. Si lo modificamos de la siguiente manera:
* 2 0 * * /root/backup.sh
El comando anterior se ejecutará el primer día de cada mes a las 2 a. m. La tabla facilita algunos comandos comunes con un archivo, es decir, /root/backup.sh a través de nuestro ejemplo anterior. Esta tabla se menciona a continuación:
N.º | Dominio | Operación Cron |
1. | * * * * * /root/backup.sh | Ejecutar la operación Cron cada minuto |
2. | 30 * * * * /root/backup.sh | Ejecutar la operación Cron cada 30 minutos |
3. | 0 * * * /root/backup.sh | Ejecutar la operación Cron cada hora |
4. | 0 0 * * * /root/backup.sh | Ejecutar la operación Cron a medianoche todos los días |
5. | 0 2 * * * /root/backup.sh | Ejecutar la operación Cron todos los días a las 2 a. m. |
6. | 0 0 1 * * /root/backup.sh | Ejecutar la operación Cron cada primer día del mes |
7. | 0 0 1 5 * * /root/backup.sh | Ejecutar la operación Cron cada quince días del mes |
8. | 0 0 0 1 2 * /root/backup.sh | Ejecutar la operación Cron a medianoche el 1 de diciembre |
9. | 0 0 * * 6 /root/backup.sh | Ejecutar la operación Cron a medianoche el sábado |
Programar operaciones anualmente
@yearly /scripts/greeting.sh
Podemos ejecutar el anterior para enviar un saludo de año nuevo. Además, se ejecutará en el primer minuto de cada año.
Programar operaciones para que se ejecuten mensualmente
@monthly /scripts/cleanup.sh
Podemos ejecutar el comando anterior para implementar algunas actividades de limpieza al comienzo de cada mes. De manera similar, podemos usar otras cadenas únicas de crontab para objetivos horarios, diarios y semanales.
Ejemplos importantes de Crontab
Discutiremos algunos comandos crontab importantes y su descripción a continuación:
0 7, 17 * * * /scripts/script.sh
Es un comando cron para implementar varios trabajos de programación. Este comando se ejecutará diariamente a las 7 a. m. y a las 5 p. m.
* / 5 * * * * * /scripts/script.sh
El comando anterior ejecutará un cron después de 5 minutos.
0 5 * * mon /scripts/script.sh
El comando es un programador de cron que nos ayudará a ejecutar la tarea cada lunes a las 5 a. m. Es útil para realizar tareas semanales, como la limpieza del sistema.
* / 3 * * * * /scripts/monitor.sh
El comando anterior ejecutará nuestro script en intervalos de 3 minutos.
* * * feb, jun, sep * /script/script.sh
El comando anterior se puede utilizar para programar cualquier cron que se ejecute durante un mes en particular. El comando se utiliza para ejecutar tareas en los meses de septiembre, junio y febrero. A veces necesitamos programar cualquier tarea para que se ejecute una tarea mensual.
0 17 * * mon, wed /script/script.sh
Este comando se ejecuta en algunos días específicos. Se ejecutará todos los lunes y miércoles a las 5:00 p. m.
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh
El comando anterior permite que cron se ejecute el primer sábado de cada mes.
0 * / 6 * * * /scripts/script.sh
Este comando se utiliza para ejecutar un script durante un intervalo de 6 horas, por lo que se puede configurar como se muestra arriba.
0 4, 17 * * mon, tue /scripts/script.sh
El comando anterior programa una tarea para que se ejecute dos veces el martes y el lunes. Podemos usar la configuración anterior para hacerlo.
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh
El comando anterior programa un cron para que se ejecute cada 15 segundos.
@yearly /scripts/script.sh
El comando anterior programa una tarea anualmente. La marca de tiempo de @yearly es «0 0 5 1*». Ejecutará la tarea en el quinto minuto de cada año. Podemos usarlo para enviar saludos de año nuevo.
@monthly /scripts/script.sh
El comando anterior programa una tarea para que se ejecute mensualmente. La marca de tiempo de @monthly es la misma que «0 0 1 * *». La expresión del comando permite la ejecución de la tarea en 5 minutos por mes.
* * * * * /scripts/script.sh; /scripts/script2.sh
El comando anterior se utiliza para ejecutar múltiples tareas con un cron.
@weekly /bin/script.sh
Este comando programa tareas para que se ejecuten semanalmente. La marca de tiempo de @weekly es la misma que «0 0 4 * sun». Implementa las tareas semanales, como la limpieza del sistema.
@daily /scripts/script.sh
Este comando se utiliza para programar tareas que se ejecutarán diariamente. La marca de tiempo de @daily es la misma que «0 2 * * *». Ejecuta la tarea en el segundo minuto de cada día.
@hourly /scripts/script.sh
Permite que las tareas se ejecuten cada hora. La marca de tiempo de @hourly es la misma que «0 * * * *». Ejecuta la tarea durante 5 minutos cada hora.
@reboot /scripts/script.sh
Permite que las tareas se ejecuten al reiniciar el sistema. La expresión @reboot es útil para las tareas que el sistema informático desea ejecutar al iniciar el sistema. Es útil para iniciar automáticamente las tareas en segundo plano.
Ejemplos de Programación de Tareas con Cron
Ejecutar una tarea todos los días a las 2:30 am:
30 2 * * * /ruta/a/mi_comando.sh
Esto ejecutará el script mi_comando.sh todos los días a las 2:30 am.
Ejecutar cada lunes a las 8:00 am:
0 8 * * 1 /ruta/a/mi_comando.sh
Aquí, 1 representa el lunes en el campo del día de la semana, y la tarea se ejecutará cada lunes a las 8:00 am.
Ejecutar cada 15 minutos:
*/15 * * * * /ruta/a/mi_comando.sh
El asterisco (*) significa «cualquier valor», y */15 en el campo de minutos indica que se ejecute cada 15 minutos.
Ejecutar cada primer día del mes a medianoche:
0 0 1 * * /ruta/a/mi_comando.sh
Esta tarea se ejecutará a las 12:00 am del primer día de cada mes.
Ejecutar cada día entre las 9:00 am y 5:00 pm cada 30 minutos:
*/30 9-17 * * * /ruta/a/mi_comando.sh
Aquí se limita la ejecución a los horarios entre 9:00 am y 5:00 pm, cada 30 minutos.
Ejecutar cada domingo a la medianoche:
0 0 * * 0 /ruta/a/mi_comando.sh
Como 0 también representa el domingo, esta tarea se ejecutará a las 12:00 am todos los domingos.
Comandos Adicionales de Crontab
Usar cron para tareas específicas del sistema (ubicación de archivos crontab del sistema):
Existen ubicaciones de cron en el sistema para tareas automatizadas de todos los usuarios y del sistema en general. Estas están en directorios específicos y no necesitan ser configuradas manualmente en el crontab de un usuario individual.
- /etc/crontab: Define tareas de cron para el sistema y permite especificar directamente el usuario en cada tarea.
- /etc/cron.hourly/: Ejecuta scripts cada hora.
- /etc/cron.daily/: Ejecuta scripts cada día.
- /etc/cron.weekly/: Ejecuta scripts cada semana.
- /etc/cron.monthly/: Ejecuta scripts cada mes.
Configuración de Variables de Entorno en Crontab
Puedes definir variables de entorno dentro del archivo crontab. Esto es útil para especificar la ruta de ejecución o el shell a usar.
Establecer el shell a utilizar:
SHELL=/bin/bash
Establecer la ruta predeterminada:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Ejemplo de configuración:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
MAILTO=miemail@example.com
Aquí, MAILTO define la dirección de correo a la que se enviarán los resultados o errores de las tareas de cron.
Redirigir Salida y Errores de Cron
Si deseas guardar la salida o los errores de una tarea programada, puedes redirigirlos a archivos de registro específicos.
Redirigir solo la salida estándar:
* * * * * /ruta/a/mi_comando.sh > /ruta/a/salida.log
Redirigir errores a un archivo de error:
* * * * * /ruta/a/mi_comando.sh 2> /ruta/a/errores.log
Redirigir tanto la salida como los errores:
* * * * * /ruta/a/mi_comando.sh > /ruta/a/salida.log 2>&1
Este comando tiene más opciones que puedes explorar
at --help

También te recomendamos consultar las páginas man para este comando:
man cron

man crontab

Conclusión
Con cron, puedes automatizar casi cualquier tarea en tu sistema, lo cual es especialmente útil para trabajos de mantenimiento y administración en servidores Linux. La clave es definir adecuadamente el tiempo y la frecuencia en el crontab, y utilizar las configuraciones de redirección para hacer un seguimiento de los resultados y errores de las tareas.
Resumen de los puntos clave:
- ¿Qué es
cron
?Cron
es un demonio de Linux que ejecuta tareas programadas automáticamente en intervalos predefinidos, ideal para tareas de mantenimiento y automatización como copias de seguridad, sincronización de archivos y actualizaciones. - Configurar trabajos con
crontab
Crontab
permite gestionar trabajos encron
de la siguiente forma:crontab -e
: edita el archivocrontab
del usuario.crontab -l
: lista los trabajos configurados encrontab
.crontab -r
: elimina todos los trabajos del usuario encrontab
.crontab -u nombre_usuario -e
: permite editar trabajoscron
de un usuario específico (requiere permisos root).
- Sintaxis básica de
crontab
La sintaxis decrontab
define cinco campos de tiempo y un comando. Ejemplo:[Minuto] [Hora] [Día_del_Mes] [Mes] [Día_de_la_Semana] [Comando]
*
: representa «cualquier valor», ejecutando el comando para cada posible valor de campo.- Rango (
-
), lista (1,3,5
) y salto (*/4
)**: permiten definir horarios específicos y frecuentes.
- Ejemplos de programación con
cron
- Cada día a las 2:30 AM:
30 2 * * * /ruta/a/mi_comando.sh
- Cada 15 minutos:
*/15 * * * * /ruta/a/mi_comando.sh
- Cada lunes a las 8:00 AM:
0 8 * * 1 /ruta/a/mi_comando.sh
- Cada primer día del mes a medianoche:
0 0 1 * * /ruta/a/mi_comando.sh
- Cada día a las 2:30 AM:
- Cadenas predefinidas en
crontab
Cron
ofrece cadenas especiales que facilitan la programación:@yearly
: ejecuta la tarea una vez al año.@monthly
: ejecuta la tarea una vez al mes.@weekly
: ejecuta la tarea una vez a la semana.@daily
: ejecuta la tarea una vez al día.@hourly
: ejecuta la tarea cada hora.@reboot
: ejecuta la tarea al iniciar el sistema.
- Archivos de configuración de
cron
del sistema
Las configuraciones decron
a nivel del sistema, como/etc/cron.daily
,/etc/cron.weekly
, etc., permiten ejecutar scripts en intervalos específicos sin configurar cada trabajo manualmente encrontab
. - Configuración de variables en
crontab
Puedes definir variables de entorno encrontab
:- SHELL: especifica el shell que se usará (por ejemplo,
SHELL=/bin/bash
). - PATH: define las rutas de búsqueda de comandos.
- MAILTO: configura la dirección de correo para recibir las salidas de cron.
- SHELL: especifica el shell que se usará (por ejemplo,
- Redirección de salida y errores en
cron
La salida y los errores de tareascron
pueden redirigirse:- Solo salida estándar:
> /ruta/a/salida.log
- Solo errores:
2> /ruta/a/errores.log
- Ambos:
> /ruta/a/salida.log 2>&1
- Solo salida estándar:
Utilizar cron
es fundamental en la administración de sistemas Linux para automatizar y gestionar tareas de mantenimiento de manera eficaz.
Pon en práctica lo aprendido
Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.
Preguntas
- ¿Qué es el comando
cron
en Linux y para qué se utiliza? - ¿Cuál es la diferencia entre
cron
ycrontab
? - ¿Cómo se estructura la sintaxis de
crontab
para definir una tarea programada? - ¿Qué representa el símbolo
*
en la configuración de uncrontab
? - ¿Cómo se establece una tarea para que se ejecute cada lunes a las 9:00 AM usando
crontab
? - ¿Qué tipos de archivos de configuración de
cron
existen y cómo se diferencian? - ¿Cómo se desactiva el envío de correos de confirmación en
cron
? - ¿Para qué sirven los directorios
/etc/cron.daily
,/etc/cron.weekly
, y/etc/cron.monthly
? - ¿Qué es una cadena única en
crontab
y cómo simplifica la programación de tareas? - ¿Cómo se verifica el contenido actual de las tareas programadas en
crontab
?
Ejercicios
- Configure una tarea en
crontab
para que se ejecute cada día a las 2:00 AM y realice una copia de seguridad de un archivo. - Programe una tarea para que se ejecute el primer día de cada mes a medianoche y envíe un correo de confirmación.
- Configure
crontab
para que ejecute una tarea cada 15 minutos y redirija su salida a un archivolog
. - Establezca una tarea que se ejecute a las 5:00 PM todos los viernes y que limpie el caché del sistema.
- Programe un comando
crontab
que se ejecute cada hora y escriba la fecha actual en un archivotimestamp.log
. - Configure una tarea en
crontab
para que se ejecute el primer lunes de cada mes a las 8:00 AM. - Edite el
crontab
de otro usuario utilizando el comando adecuado y programe una tarea diaria a las 3:00 PM. - Utilice una cadena única de
crontab
para que se ejecute un script automáticamente al reiniciar el sistema. - Incluya en el
crontab
una variable de entornoMAILTO
para recibir notificaciones al ejecutar cada tarea. - Programe una tarea en
crontab
que se ejecute cada 10 minutos entre las 9:00 AM y las 5:00 PM y redirija los errores a un archivoerror.log
.
Respuestas a las Preguntas
- Comando
cron
: Utilizado para ejecutar tareas programadas en intervalos regulares sin intervención del usuario, es útil para automatización en sistemas Linux. - Diferencia entre
cron
ycrontab
:cron
es el demonio que ejecuta tareas programadas, mientras quecrontab
permite listar, editar, y eliminar dichas tareas. - Estructura de
crontab
: Consiste en cinco campos para el tiempo (minuto, hora, día del mes, mes, y día de la semana) y un comando o script a ejecutar. - Uso de
*
encrontab
: Representa «todos los valores posibles» en ese campo. Por ejemplo,* * * * *
ejecuta una tarea cada minuto. - Ejecutar cada lunes a las 9:00 AM:
0 9 * * 1 /ruta/a/mi_comando.sh
. - Tipos de archivos de configuración de
cron
:- Usuario crontab: Configuración personalizada de cada usuario.
- Crontab del sistema: Tareas críticas y administrativas que requieren permisos root.
- Desactivar correos en
cron
: Añadir>/dev/null 2>&1
al final del comando evita el envío de correos. - Directorios
/etc/cron.daily
y otros: Ejecutan automáticamente tareas diarias, semanales, o mensuales. - Cadena única en
crontab
: Simplifica tareas repetitivas como@daily
,@weekly
,@reboot
, eliminando la necesidad de escribir toda la sintaxis de tiempo. - Ver contenido de
crontab
: Usarcrontab -l
para ver las tareas programadas.
Respuestas a los Ejercicios
- Copia de seguridad diaria a las 2:00 AM:
0 2 * * * /ruta/backup.sh
. - Tarea el primer día de cada mes:
0 0 1 * * /ruta/envia_correo.sh
. - Tarea cada 15 minutos con registro en log:
*/15 * * * * /ruta/mi_comando.sh > /ruta/mi_log.log
. - Limpiar caché cada viernes a las 5:00 PM:
0 17 * * 5 /ruta/limpiar_cache.sh
. - Tarea cada hora con fecha en
timestamp.log
:0 * * * * date >> /ruta/timestamp.log
. - Primer lunes de cada mes a las 8:00 AM:
0 8 1-7 * 1 /ruta/tarea.sh
. - Editar
crontab
de otro usuario:crontab -u <nombre_usuario> -e
y añadir0 15 * * * /ruta/tarea_diaria.sh
. - Usar
@reboot
para una tarea al inicio:@reboot /ruta/script_al_iniciar.sh
. - Añadir
MAILTO
para notificaciones:- MAILTO="miemail@example.com" * * * * * /ruta/comando.sh
- Tarea cada 10 minutos con redirección de errores:
*/10 9-17 * * * /ruta/mi_comando.sh 2>/ruta/error.log
.
No te detengas, sigue avanzando
Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…
- Cómo conseguir trabajo de hacker en 2024
- Trabaja remoto e internacionalmente como Hacker en 2024
- Se necesitan más Hackers – Hechos y estadísticas de 2024
- Se Necesitan más Hackers – La escasez de habilidades en ciberseguridad está empeorando
- El salario de un hacker – Cuanto se gana como Pentesters/ Infosec
- Las empresas te estan buscando para hacerle frente a los ciberataques
- Cómo convertirse en analista de ciberseguridad
- Inicia en hacking y ciberseguridad como analista SOC
- DevOps vs DevSecOps para Hackers
- DevOps vs DevSecOps para Empresas
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores
Álvaro Chirou
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:
Laprovittera Carlos
Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:
Hacker de 0 a 100 desde las bases hasta conseguir empleo
¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.
Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).
Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).
El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.
SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS
- Cómo Iniciarse en Hacking y Ciberseguridad en 2024
- Hacker de 0 a 100 desde las bases hasta conseguir empleo
- Curso de Redes para Hackers
- Curso Gratis de Programación
- Curso Gratis Linux – Capitulo 1 – Introducción a Linux
- Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios
- Guía de Hacking y Pentesting capitulo 1: Introducción al Pentesting
- Como iniciarse en TRY HACK ME – Complete Beginner #1
- OSINT #1 Más de 200 Search Tools
- Curso Gratis de Java para Hackers
- Hardware para Hackers – Los mejores 40 Dispositivos de Hacking
- Guía de Flipper Zero – Qué es y para qué sirve
- SIGUE APRENDIENDO GRATIS EN NUESTRO BLOG
Aprende con nuestros más de 100 cursos que tenemos disponibles para vos
Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.
Saludos amigos y happy hacking!!!