Aproveche el comando crontab de Linux para automatizar varias tareas mundanas y repetitivas, simplificando su vida. Esta herramienta excelente y fácil de usar, combinada con algunas secuencias de comandos, no solo puede automatizar todo tipo de tareas, sino que también puede ayudar a evitar simples errores humanos o olvidos.

Aquí aprenderá qué es crontab, cómo agregar trabajos automatizados y algunos ejemplos del mundo real.

¿Qué es Crontab?

Crontab es un proceso demonio que se ejecuta en segundo plano en casi todas las máquinas Linux y se utiliza para programar y ejecutar tareas automatizadas en intervalos de tiempo establecidos. Los desarrolladores de software también lo utilizan a menudo para ejecutar tareas que requieren mucho tiempo en segundo plano.

Esto puede ser cualquier cosa, incluido, entre otros, el envío de correos electrónicos por lotes, la verificación de su cuenta de Twitter, la realización de copias de seguridad o simplemente la realización de un recordatorio.

Comandos básicos de Crontab

instagram viewer

Cada usuario de Linux en la máquina tiene su propio archivo crontab, que contiene sus trabajos crontab activos. Aquí hay algunos comandos de terminal básicos que usará para ver y modificar el archivo crontab:

  • crontab-l Enumere todos los trabajos crontab.
  • crontab -e Edite el archivo crontab.
  • crontab -r Elimine todas las entradas del archivo crontab.

Los comandos anteriores serán para usuarios actuales archivo crontab. Si necesita modificar el archivo crontab de un usuario diferente, simplemente use el -u opción. Por ejemplo, puede editar el jdoe archivo crontab del usuario con el comando:

Ubuntu Linux: agregue y elimine usuarios a grupos de manera fácil

¿Quiere administrar mejor a los usuarios en Ubuntu Linux? La respuesta es crear grupos y luego usar la función de agregar usuario de Ubuntu.

sudo crontab -ujdoe -e

Formato de trabajos de Crontab

Cada trabajo crontab consta de una línea y tiene el siguiente formato:

COMANDO MINUTO HORA DÍA MES DÍA DE LA SEMANA

La siguiente tabla explica los diferentes elementos del trabajo crontab:

Elemento Rango Descripción
Minuto 0 - 59 El minuto para ejecutar el trabajo crontab en.
Hora 0 - 23 La hora a la que se ejecutará el trabajo crontab.
Día 1 - 31 El día del mes en el que se ejecutará el trabajo crontab.
Mes 1 - 12 El mes en el que se ejecutará el trabajo crontab.
Día laborable 0 - 6 El día de la semana en el que se ejecutará el trabajo crontab.
Mando Cualquier comando de Linux que pueda ejecutar en la terminal.

Puede usar un asterisco (*) en cualquiera de los campos para indicar un comodín, lo que significa que el trabajo crontab se ejecutará independientemente de ese período de tiempo. Por ejemplo, el siguiente trabajo crontab se ejecutará todas las noches exactamente a las 3:20 am:

20 3 * * * /root/backup.sh

Varios valores

Cada período de tiempo también puede incluir múltiples elementos. Puede especificar los valores exactos separándolos con una coma, y ​​el trabajo crontab a continuación se ejecutará cada hora a los 20 y 50 minutos después de la hora:

20,50 * * * * /ruta/a/comando.sh

Sin embargo, si desea ejecutar el trabajo crontab a intervalos específicos dentro de un período de tiempo, puede usar */PERÍODO, y el trabajo crontab siguiente se ejecutará automáticamente 15 minutos después de la hora cada tres horas:

15 * / 3 * * * /ruta/a/comando.sh

Mantener Crontab Jobs en silencio

Dependiendo de todo, es posible que desee eliminar todos los resultados de los trabajos crontab para que no terminen en la carpeta de correo de su sistema. Puede hacer esto agregando > / dev / null 2> & 1 a cualquier trabajo crontab. Por ejemplo:

0 6 15 * * /ruta/a/backup.sh> / dev / null 2> & 1

Adición de trabajos de Crontab

Generalmente, el método más utilizado para agregar o modificar trabajos crontab es el crontab -e mando. Ejecute este comando en la terminal:

crontab -e

Esto abrirá un editor de texto tal como nano con el contenido de su archivo crontab. Cada trabajo crontab reside en una línea y puede agregar, modificar y eliminar líneas como desee. Una vez hecho esto, guarde y cierre el archivo presionando Ctrl + W, Seguido por el Y y Ingresar claves, que activarán inmediatamente todos los trabajos crontab dentro del archivo.

Acceso directo para agregar trabajos

En lugar de modificar manualmente el archivo crontab, hay un comando único rápido que puede ejecutar para agregar un trabajo. Por ejemplo, si desea agregar este trabajo crontab que se ejecuta todos los domingos a las 2:00 pm:

0 14 * * 0 /ruta/a/comando.sh

Puede agregar el trabajo a su archivo crontab con el comando único:

(crontab -l; echo "0 14 * * 0 /ruta/a/comando.sh";) | crontab

El comando anterior simplemente enumera todos los trabajos actualmente en su archivo crontab, imprime el nuevo trabajo y canaliza todo a crontab reemplazando su contenido.

Listado / Eliminación de archivo Crontab

Puede enumerar todos los trabajos actualmente activos dentro de su archivo crontab con el comando:

crontab -l

También puede eliminar todos los trabajos crontab y vaciar el contenido de su archivo crontab con el comando:

crontab -r

Ejemplo: ¡Reproducir sonidos!

¿Necesita un recordatorio rápido cada dos horas mientras trabaja para informarle que ha pasado el tiempo? Tome su clip de audio favorito en casi cualquier formato (.wav, .mp4, cualquier cosa) y si está guardado en (por ejemplo) /home/myuser/myalert.wav hacer que se reproduzca automáticamente con el trabajo crontab:

0 * / 2 * * * aplay /home/myuser/myalert.wav

¿Qué tal darte una buena despedida del trabajo de la semana con tu canción favorita reproduciéndose automáticamente a las 5:00 pm todos los viernes por la tarde? Coge el clip de tu canción favorita y, si se guarda en, di /home/myuser/friday_song.mp4 agregaría el trabajo crontab:

0 17 * * 5 aplay /home/myuser/friday_song.mp4

Ejemplo: archivos de copia de seguridad con Rsync

Uno de los muchos usos excelentes de crontab es la capacidad de respaldar automáticamente sus archivos en un servidor remoto. Reduzca sustancialmente el riesgo de volver a perder datos importantes con este excelente tutorial de rsync.

Ejemplo: comprobar si los sitios están en línea

Tal vez desee verificar automáticamente cada cinco minutos si varios sitios están en línea y recibir una notificación por correo electrónico si alguno está inactivo. Aquí hay un pequeño script PHP ingenioso que hará precisamente eso.


php
// Dirección de correo electrónico para notificar los sitios inactivos
$ email = '[email protected]';
// Definir URL para verificar
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Revise las URL
$ down = [];
foreach ($ urls as $ url) {
// Verifique la URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Enviar correo electrónico si tenemos sitios inactivos
if (count ($ down)> 0) {
mail ($ correo electrónico, "Urgente - ¡Sitios inactivos!", "Su bot ha detectado que los siguientes sitios están actualmente inactivo:
". implosionar ("
", $ abajo));
}
// Salir
salir (0);
/ **
* Verificar URL < br /> * /
función check_url (string $ url): int
{
// Enviar vía cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); > curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Obtener el estado y cerrar la conexión
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}

Simplemente modifique la dirección de correo electrónico y las URL deseadas para verificar en la parte superior del archivo y guardar en algún lugar como /home/myuser/check_sites.php . Para que este script se ejecute cada cinco minutos y le notifique por correo electrónico sobre cualquier sitio que esté inactivo, agregue el trabajo crontab:

  * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1  

¡Automatiza tu vida!

Con este artículo, Con suerte habrá entendido el poder de automatización de crontab y cómo se puede utilizar para automatizar muchas de las tareas mundanas y repetitivas en su vida.

Ha aprendido qué es crontab, sobre el archivo crontab, cómo se formatean los trabajos crontab y algunos ejemplos del mundo real de cómo se puede utilizar.

4 Aplicaciones de automatización de Linux para optimizar sus tareas y flujos de trabajo

¿Quiere ahorrar tiempo y evitar tareas repetitivas? ¡La respuesta es la automatización! Aquí hay algunas aplicaciones útiles de automatización de escritorio de Linux para probar.

Relacionados Temas
  • Programación
  • Linux
Acerca de El autor
Matt Dizak (13 artículos Publicado)
Más de Matt Dizak

Suscríbase a nuestro Boletín

¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

¡Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.