Temporizador de systemd

Temporizador de systemd
En el sistema operativo Linux, Systemd es un administrador de servicios y un administrador de sistemas. Actúa como un sistema init cuando se ejecuta como un primer proceso en arranque. Se mantiene y realiza un seguimiento de los servicios del espacio de usuario. Para iniciar los servicios de los usuarios registrados, comienza con instancias separadas. Los temporizadores son archivos unitarios de Systemd que tienen una extensión de ".Temporizador". Estos archivos controlan el ".Servicio de archivos o eventos en un sistema.

La mayoría de las veces, los temporizadores se usan como reemplazo para Cron. Nos proporciona un soporte incorporado para eventos de tiempo calendario. La ventaja de los temporizadores sobre Cronjobs es que proporcionan los controles de los eventos de grano más fino. Estos se usan cuando una tarea requiere programar en un sistema operativo Linux. Por ejemplo, si queremos iniciar un proceso cuando nuestra máquina arranca, usamos los temporizadores para ese propósito. Anteriormente, Cron era la herramienta para hacer este tipo de trabajos. Pero hoy en día, los temporizadores se están utilizando para estos fines.

Los temporizadores son casi como Cron de una manera que ambos proporcionan un enfoque y un mecanismo para programar tareas en el sistema operativo Linux. Cron tiene sus inconvenientes, por lo que los temporizadores lo están reemplazando. Por ejemplo, si queremos programar nuestra copia de seguridad a las 5 de la noche y de alguna manera, nuestro sistema se cierra entre las 4:50 y las 5:10, Cron omite la copia de seguridad en ese caso que mata el propósito de programar.

Para trabajar con temporizadores, necesitamos las siguientes cosas como requisitos previos:

  • Privilegios de raíz
  • Terminal

Las funciones de los temporizadores de Systemd necesitan dos archivos de configuración que son:

Unidad de temporizador: La unidad de temporizador realiza un seguimiento de cuándo usar los archivos de servicio. Usan una extensión de ".Temporizador".

Unidad de servicio: Estos son archivos de configuración de la unidad. Gestionan y definen los procesos del sistema. Ellos tienen ".Extensión del servicio "como se discutió anteriormente.

Ahora, discutimos cómo podemos programar una copia de seguridad de servidor automatizado. Otra ventaja del servicio SystemD es que no permite que sus tareas tengan múltiples instancias. Si de alguna manera, comenzamos una tarea nuevamente mientras ya se inicia, omita el vástago de lanzamiento y lo mantiene hasta que la tarea de ejecución actual haya completado su trabajo. Después de configurar nuestro servicio Systemd y llegar a programar, creamos un archivo con el mismo nombre que nuestro servicio.

La única diferencia es que tiene una extensión de ".temporizador ”y no de servicio. Por ejemplo, tenemos un servicio llamado "XYZ". En ese caso, tenemos "xyz.servicio "como nuestro nombre de servicio y" xyz.temporizador "como nombre de nuestro temporizador. Otra cosa a tener en cuenta es que ambos archivos deben estar en el mismo directorio.

Pasos para crear un temporizador Systemd

Crear un script de prueba
Este es un script de BASH básico como ejemplo:

linux@linux-virtualbox: ~ $ nano test.mierda

El script anterior imprime la fecha.

Crear un archivo de servicio
Ahora, creamos un archivo de servicio o unidad para ejecutar el script bash.

linux@linux-virtualbox: ~ $ nano/etc/systemd/system/new.servicio

Este es un script de ejemplo para crear el archivo de servicio. Tiene dos opciones: una es "Unidad" y la otra es "Servicio". En este paso, primero le decimos al sistema el nombre de la unidad y lo que esta unidad está haciendo. Luego, definimos un servicio con el tipo de "simple". Por último, definimos que el servicio comienza en caso de falla.

Crear un archivo de temporizador
Después de crear el archivo de servicio, ahora creamos un archivo de temporizador. Ejecutamos el siguiente comando para crear un archivo de temporizador:

linux@linux-virtualbox: ~ $ nano/etc/systemd/system/test.Temporizador

Tiene tres opciones: "Unidad", "Temporizador" e "Instalar". Nuevamente, después de ejecutar el comando, definimos qué está haciendo nuestra unidad. Tiene una opción de "temporizador". Con la ayuda de la cual, le decimos al sistema cuándo se ejecuta nuestro script. La última opción, "Instalar", indica cuándo comienza nuestro servicio de acuerdo con los niveles de ejecución. Esta opción está habilitada solo cuando un servicio está habilitado con la ayuda de SystemCTL.

Ahora, discutamos las opciones con más profundidad para obtener un mejor control de los temporizadores.

Unidad: Esto especifica el dispositivo que queremos activar cuando el temporizador se agota. El parámetro aprobado es el nombre de una unidad cuya extensión no debe ser ".Temporizador". Si no podemos hacerlo o no queremos pasar el nombre de la unidad, el valor predeterminado es el servicio que tiene el mismo nombre que el nombre del ".temporizador ”en ese caso. Como ya se discutió, el mejor enfoque es que debemos mantener el nombre del servicio y el nombre del temporizador de la misma manera.

Temporizador: La opción de temporizador lleva toda la información sobre el temporizador que se define. En la opción del temporizador, encontramos todas las configuraciones que necesitamos para activar el temporizador. Las secciones del temporizador tienen muchas opciones como:

OnactiveseC =, onbootsec =, onStartUpSec =, onUnItActiveC =, OnUnitInactivesC =

En la sección del temporizador, también le decimos al sistema cuándo ejecutar el proceso y cuándo finalizar ese proceso de acuerdo con la zona horaria del servidor.

La sección del temporizador también tiene una opción muy útil e importante que es:

Oncalender = conjuntos

Esta opción define con qué frecuencia se realiza una tarea. Por ejemplo, si queremos programar una tarea diariamente, usamos esta opción como "oncalendar = diary". Esto realiza la tarea diariamente.

Si desea ser más específico, también puede aprobar una fecha de fecha específica de acuerdo con sus requisitos. Otra cosa a tener en cuenta mientras trabaja con los temporizadores es que los desencadenantes diarios siempre están a la medianoche, lo cual es un momento pico en los sistemas informáticos. Por lo tanto, para evitar los problemas durante eso, le recomendamos que use el "RandomizeSaySeSec =". Retrasa el horario al azar con una diferencia de unos pocos segundos. Requiere un valor que representa los segundos de que el temporizador puede retrasarse.

El problema es que el diario siempre se activa a las 12 a.m. Weekly siempre se activa los lunes a medianoche. Y anual siempre se activa el primero de enero. Todos estos son tiempos pico y hay una interrupción de la red durante estos en todas partes.

Habilitar e iniciar el temporizador
Este es el paso final de nuestra tarea. Realizamos este paso sistemáticamente. Para realizar esta actividad, debemos hacer una "recuperación de demonios". Para ver si se crea un nuevo archivo o se actualiza un archivo anterior, todo el sistema se vuelve a cargar.

Solución de problemas
A veces, no podemos atrapar todos los problemas de antemano. En el temporizador SystemD, podemos asegurarnos de atraparlos verificando las unidades de temporizador "Systemd" antes de habilitarlas. Para hacerlo, utilizamos el comando "SystemD-Analyze-Verify". Este comando nos ayuda a encontrar un problema potencial y solucionarlo en consecuencia.
También hay otros comandos que nos ayudan a solucionar problemas y diagnosticar nuestros temporizadores. Por ejemplo, hay un comando que nos ayuda a verificar si nuestro servicio se ejecuta correctamente o no. El comando es el siguiente:

linux@linux -virtualbox: ~ $ sudo Journalctl -S Today -f -U Test.servicio

Este comando nos muestra cuándo comenzó el servicio y el resultado de nuestro comando bash como se muestra en el siguiente fragmento:

Conclusión

Estudiamos el temporizador del sistema. Después de obtener una revisión detallada de lo que es un temporizador del sistema y su funcionamiento, implementamos un ejemplo para explicarle la idea más brevemente en el que explicamos cada paso en múltiples partes.