Introducción
En este laboratorio, aprenderás cómo configurar tareas programadas en Linux. Explorarás dos herramientas poderosas: el comando watch para ejecutar comandos repetidamente en intervalos cortos, y la utilidad crontab para programar tareas que se ejecuten en momentos específicos. Estas habilidades son esenciales para los administradores de sistemas y cualquier persona que necesite automatizar tareas recurrentes en un sistema Linux.
Utilizar el comando watch
El comando watch te permite ejecutar un comando repetidamente y ver su salida en tiempo real. Esto es útil para monitorear cambios o ejecutar un comando a intervalos cortos regulares.
Abre tu terminal. Debes estar en el directorio
/home/labex/project. Si no estás seguro, siempre puedes verificar tu directorio actual con el comandopwd.Usaremos
watchpara mostrar la fecha y hora actual cada 5 segundos. Ingresa el siguiente comando:watch -n 5 dateEsto es lo que hace este comando:
watches el comando que estamos usando para repetir otro comando.-n 5es una opción que le dice awatchque espere 5 segundos entre cada ejecución. Si omites esto,watchusará un intervalo predeterminado de 2 segundos.datees el comando quewatchejecutará repetidamente. Muestra la fecha y hora actual.
Después de ingresar el comando, deberías ver una pantalla completa que se actualiza cada 5 segundos. Se verá similar a esto:

La línea superior muestra el comando que se está ejecutando y con qué frecuencia se está actualizando. El resto de la pantalla muestra la salida del comando date.
Para salir del comando
watch, presionaCtrl+C. Esta combinación de teclas se usa comúnmente en Linux para terminar un comando en ejecución.Si no detienes el comando
watch, seguirá ejecutándose indefinidamente, lo que podría impedir que ingreses nuevos comandos en tu terminal.
Instalar Crontab
Antes de poder usar crontab para programar tareas, debemos asegurarnos de que esté instalado en nuestro sistema. La mayoría de las distribuciones de Linux vienen con crontab preinstalado, pero es una buena práctica comprobarlo e instalarlo si es necesario.
Primero, comprobemos si crontab ya está instalado. Podemos hacer esto intentando ejecutar el comando crontab:
crontab -lSi crontab está instalado, verás una lista de tus trabajos cron actuales o un mensaje que dice "no crontab for labex".
Si ves un mensaje de error que dice que el comando no se encuentra, necesitamos instalar crontab. En sistemas basados en Ubuntu o Debian, podemos instalarlo usando los siguientes comandos:
sudo apt update sudo apt install cronSe te pedirá que ingreses tu contraseña. Escríbela (ten en cuenta que no verás ningún carácter mientras escribes por razones de seguridad) y presiona Enter.
Después de la instalación, inicia el servicio cron:
sudo service cron startEste comando inicia el servicio cron inmediatamente.
Ahora, verifica que cron esté instalado y en ejecución:
sudo service cron statusDeberías ver una salida que indique que el servicio cron está en ejecución.
Introducción a Crontab
Ahora que tenemos crontab instalado, exploremos cómo usarlo. Crontab se utiliza para programar tareas en momentos específicos, incluso cuando no estás conectado.
Primero, veamos tus entradas actuales de crontab (si las hay). Utiliza el siguiente comando:
crontab -lLa opción
-lsignifica "listar". Este comando muestra todas las tareas programadas en tu crontab.Si aún no has configurado ningún trabajo cron, verás un mensaje que dice "no crontab for labex". Esto es normal para un nuevo usuario.
Ahora, abramos el crontab para editarlo. Utiliza este comando:
crontab -eLa opción
-esignifica "editar". Este comando abre tu archivo crontab en un editor de texto.Si es la primera vez que usas crontab, se te puede pedir que elijas un editor. Verás una lista de números correspondientes a diferentes editores. Para los principiantes, nano (generalmente la opción 1) es una buena elección porque es más sencillo de usar. Escribe el número de nano y presiona Enter.

Si no se te pide que elijas un editor, no te preocupes. Significa que ya se ha configurado un editor predeterminado para ti.
Una vez que se abra el editor, verás un archivo vacío (o cualquier trabajo cron existente si tuvieras alguno). No agregues nada todavía; lo haremos en un paso posterior. Por ahora, simplemente familiarízate con el editor.
Si estás usando nano, verás algunos comandos de ayuda en la parte inferior de la pantalla. El símbolo
^representa la tecla Ctrl. Entonces^Xsignifica "Ctrl+X", que se utiliza para salir de nano.Sal del editor sin hacer ningún cambio. En nano, puedes hacer esto presionando Ctrl+X. Si se te pregunta si deseas guardar los cambios, presiona 'N' para No.
Comprender la sintaxis de Crontab
Antes de agregar un trabajo cron, es fundamental entender la sintaxis. Crontab utiliza un formato específico para determinar cuándo debe ejecutarse una tarea.
El formato básico de un trabajo cron es:
* * * * * command_to_executeCada asterisco representa una unidad de tiempo específica, de izquierda a derecha:
- Minuto (0-59)
- Hora (0-23)
- Día del mes (1-31)
- Mes (1-12)
- Día de la semana (0-7, donde tanto 0 como 7 representan el domingo)
Aquí hay algunos ejemplos para ayudarte a entender:
30 2 * * *significa "A las 2:30 AM, todos los días"0 9 * * 1-5significa "A las 9:00 AM, de lunes a viernes"*/15 * * * *significa "Cada 15 minutos"
Puedes usar los siguientes caracteres especiales:
*: cualquier valor,: separador de lista de valores-: rango de valores/: valores de paso
Analicemos un ejemplo más complejo:
15,45 9-17 * * 1-5 /path/to/script.shEsto significa: "Ejecuta /path/to/script.sh a los 15 y 45 minutos de cada hora, de 9 AM a 5 PM, de lunes a viernes"
Comprender esta sintaxis es clave para crear trabajos cron efectivos. Tómate un tiempo para pensar cómo podrías programar diferentes tareas utilizando este formato.
Agregar un trabajo de Cron
Ahora que entendemos la sintaxis, agreguemos un simple trabajo cron que escriba la fecha actual en un archivo cada minuto.
Abre tu crontab para editarlo:
crontab -eUna vez que se abra el editor, agrega la siguiente línea a tu crontab:
* * * * * date >> /home/labex/project/date_log.txt

Analicemos esto:
- Los cinco asteriscos
* * * * *significan "cada minuto de cada hora de cada día de cada mes y cada día de la semana". datees el comando que estamos ejecutando.>>se utiliza para anexar la salida a un archivo (en lugar de sobrescribirlo)./home/labex/project/date_log.txtes el archivo donde estamos almacenando la salida.
Guarda y cierra el editor. Si estás usando nano:
- Presiona
Ctrl+Xpara salir. - Presiona
Ypara confirmar que deseas guardar los cambios. - Presiona
Enterpara confirmar el nombre del archivo.
- Presiona
Después de salir, deberías ver un mensaje que dice "crontab: installing new crontab". Esto confirma que tus cambios se han guardado.
Monitorear tu trabajo de Cron
Ahora que hemos configurado un trabajo cron, veamos si está funcionando correctamente.
Primero, debemos esperar al menos un minuto después de agregar el trabajo cron. Esto se debe a que los trabajos cron se ejecutan en el minuto, por lo que puede tardar hasta un minuto en ejecutarse por primera vez.
Después de esperar, utiliza el comando
catpara ver el contenido del archivo de registro:cat /home/labex/project/date_log.txtEl comando
catmuestra el contenido de un archivo directamente en la terminal.Deberías ver al menos una línea con una fecha y hora. Se verá algo así:
Sat Aug 5 10:15:01 UTC 2023Si no ves nada, espera otro minuto y vuelve a intentarlo. A veces puede tomar un momento para que el trabajo cron comience a ejecutarse.
Para ver el trabajo cron en acción, puedes utilizar el comando
watchque aprendimos anteriormente para monitorear el archivo en tiempo real:watch -n 60 cat /home/labex/project/date_log.txtEsto se actualizará cada 60 segundos, mostrándote las nuevas entradas a medida que se agreguen.
Deja que esto se ejecute durante unos minutos. Deberías ver una nueva línea agregada cada minuto.
Cuando hayas terminado de observar, presiona
Ctrl+Cpara salir del comandowatch.
Resumen
¡Felicidades! Has completado con éxito el laboratorio "Set Up Scheduled Tasks" (Configurar tareas programadas). Has aprendido cómo:
- Utilizar el comando
watchpara ejecutar comandos repetidamente en intervalos cortos. - Instalar y configurar crontab en tu sistema.
- Ver y editar tu crontab utilizando
crontab -lycrontab -e. - Comprender la sintaxis de crontab para programar tareas.
- Crear un simple trabajo cron que se ejecute cada minuto.
- Monitorear la salida de tu trabajo cron.
Estas habilidades son fundamentales para automatizar tareas y monitorear sistemas en entornos Linux. A medida que continúes tu viaje en Linux, encontrarás muchos más usos para las tareas programadas en la administración y automatización del sistema.
Recuerda, aunque usamos un ejemplo simple de registrar la fecha, puedes utilizar trabajos cron para tareas más complejas como hacer copias de seguridad de datos, actualizar software o ejecutar scripts de mantenimiento del sistema. Siempre ten cuidado al configurar trabajos cron, especialmente si involucran operaciones críticas del sistema.



