Cómo usar los temporizadores Systemd como un reemplazo de Cron

Como usuario de Linux probablemente esté familiarizado con cron. Ha funcionado como el planificador de trabajos basado en el tiempo de Unix durante muchos años. Ahora muchos usuarios están viendo que los temporizadores Systemd comienzan a reemplazar el dominio de cron.

Este artículo discutirá los conceptos básicos de cómo configurar su propio temporizador y asegurarse de que esté funcionando correctamente en su sistema.

Relacionado 4 Useful Cron Alternatives For Linux

Instalación?

Si ya está usando Systemd como un sistema init – muchas distribuciones populares de Linux lo ejecutan por defecto, incluyendo Arch, Debian, Fedora, Red Hat y Ubuntu – verá temporizadores ya en uso. No hay nada más que hacer que usar esa función ya instalada.

Lista de temporizadores existentes

La forma más fácil de comprobar que existe un temporizador en su ordenador es con el comando:

systemctl list-timers

No tienes que ejecutar esto como root.

systemctl list-timers --all

La opción –all también muestra temporizadores inactivos. No hay ningún temporizador inactivo en este sistema.

Debería encontrar una salida similar a la siguiente imagen:

Cómo usar los temporizadores Systemd como un reemplazo de Cron


Puede ver la fecha y la hora en que se activará cada temporizador, la cuenta atrás hasta ese punto, cuánto tiempo ha pasado desde la última vez que se ejecutó, el nombre de la unidad del temporizador en sí y el servicio que cada unidad de temporizador activa.

Todos los temporizadores deben estar emparejados con un servicio correspondiente. En la siguiente sección verá cómo crear un archivo “.timer” que activa un archivo “.service”.

Creación de un nuevo temporizador

Puede crear un nuevo temporizador colocando un archivo.timer personalizado en “/etc/systemd/system/”. Al crear un nuevo temporizador para mi archivo de servicio DNS dinámico DuckDNS, terminé con este texto:

[Unidad] Description=Actualizar DNS dinámicos de duckdns [Temporizador] OnCalendario=*-*-* 11:43:00 Persistente=verdadero [Instalar] WantedBy=timers.target

1. Sección[Unidad]

La opción “Description=….” del archivo le indica el nombre/descripción del propio temporizador. En este caso mi “duckdns.timer” actualizará mi DNS diciéndole al archivo “duckdns.service” que ejecute una serie de comandos.

Puede cambiar la redacción después de “Description=” para decir lo que quiera.

2. Sección[Temporizador]

“OnCalendar=…” aquí muestra una forma de indicar al temporizador cuándo debe activarse. *-*-*-* significa “Año-Mes-Día, y los asteriscos significan que se ejecutará todos los días de cada mes de cada año de aquí en adelante. La hora que sigue a los asteriscos muestra la hora del día en que el temporizador debe funcionar.

“Persistent=true” sólo significa que el temporizador se ejecutará automáticamente si se perdió la hora de inicio anterior. Esto puede suceder porque el ordenador se apagó antes de que el evento pudiera tener lugar. Esto es opcional, pero se recomienda.

3. Sección[Instalar]

Finalmente, “WantedBy=timers.target” muestra que el archivo Systemd timers.target utilizará este archivo.timer. Esta línea en el archivo muestra la cadena de dependencia de un archivo a otro. No debe omitir ni modificar esta línea.

Otras opciones

Usted puede encontrar muchas otras características escaneando la página de manual de Systemd con man systemd.timer. Navegue a la sección “OPCIONES” para descubrir las opciones de precisión, persistencia y ejecución después del arranque.

Ejecución del temporizador

Active cualquier temporizador que haya creado con la sintaxis systemctl enable y systemctl start.

sudo systemctl habilitar duckdns.timer
sudo systemctl start duckdns.timer

Mire de nuevo a los temporizadores de la lista systemctl para ver su temporizador en acción.

Cómo usar los temporizadores Systemd como un reemplazo de Cron


Puede ver si el temporizador se ejecutó como se esperaba inspeccionando su correspondiente archivo de servicio con el estado systemctl. En este caso puedes ver que mi temporizador funcionó a las 11:43:00 como se suponía que debía hacerlo.

Cómo usar los temporizadores Systemd como un reemplazo de Cron


Conclusión

Aunque muchos programas de terceros, incluyendo DuckDNS, vienen con scripts que les permiten actualizarse según sea necesario, crear temporizadores en Systemd es una habilidad útil de conocer. Mi creación de un temporizador para DuckDNS aquí era innecesaria, pero muestra cómo funcionarían otros tipos de temporizadores Systemd.

Este conocimiento será útil, por ejemplo, para crear y ejecutar sus propios scripts Bash. Incluso puede utilizarlo para modificar un temporizador existente y adaptarlo mejor a sus preferencias. Además, siempre es bueno saber cómo funciona su ordenador, y como Systemd controla muchas funciones básicas, esta pieza del rompecabezas puede ayudarle a comprender mejor la forma en que se activan los eventos todos los días.

Gracias por seguirme. Buena suerte con la creación de sus propios temporizadores.

Fuente: este post proviene de Vida Tecno, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado:
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Etiquetas: Linux

Recomendamos

Relacionado

Linux

Desde hace tiempo el kernel de Linux soporta oficialmente el controlador de Microsoft Xbox One. Dicho esto, el apoyo no es el mejor. Para empezar, hay algunos ajustes que se podrían hacer, así como la capacidad de soporte para múltiples controladores y más. En este artículo te mostraremos cómo configurar un controlador de Xbox One en Ubuntu. Para ser más específicos, repasaremos cómo usar el contr ...

Usar Dropbox en Linux solía ser muy fácil. Para mucha gente, todavía lo es. Sin embargo, si usas un sistema de archivos que no sea Ext4, de repente es mucho más difícil. Afortunadamente, no estás completamente de mala suerte. ¿Cuál es el problema? Durante mucho tiempo Dropbox soportó la mayoría de los sistemas de archivos que querías usar, y luego la compañía anunció en voz baja que estaba elimina ...