¿Cómo puedo configurar la zona horaria para crontabs??

¿Cómo puedo configurar la zona horaria para crontabs??
Crontab, una forma abreviada de Mesa de cron, es tanto un comando como un archivo de texto en los sistemas UNIX/Linux utilizados para determinar la programación de trabajos cron. ¿Qué es un trabajo cron?? Un trabajo cron, también ampliamente referido como Cron, es un programador basado en el tiempo que ejecuta tareas en sistemas Linux en momentos especificados. Se ejecuta con la ayuda de los trabajos de Crond Daemon Cron son extremadamente útiles para automatizar los scripts de shell y otros comandos que deben ejecutarse a intervalos regulares, lo que de otro modo sería tedioso cuando se hace manualmente.

Por lo general, los trabajos cron se ejecutan utilizando la hora local definida en el sistema. Sin embargo, es posible que prefiera ejecutar el trabajo cron en una zona horaria diferente sin cambiar necesariamente el tiempo y la fecha de su servidor.

Puede verificar su hora local usando el comando Timedatectl de la siguiente manera:

$ Timedatectl

También puede usar el comando de fecha de la siguiente manera:

$ Fecha

Entonces, ¿cómo puedes establecer una zona horaria diferente para tus crontabs?? Vamos a averiguar.

Cómo establecer la zona horaria para crontabs

En su sistema Linux local, las zonas horarias generalmente se especifican en el /usr/share/zoneinfo directorio. El directorio contiene una lista de continentes y países y sus zonas horarias, como se muestra a continuación.

$ LS/USR/Share/ZoneInfo/

Puede ajustar fácilmente la zona horaria actual a una diferente utilizando la sintaxis que se muestra. Por ejemplo, para establecer el sistema en la hora en Tokio, Japón, simplemente ejecute:

$ sudo ln -sf/usr/share/zoneinfo/asia/tokyo/etc/localtime

Sin embargo, no puede cambiar el tiempo de su sistema, especialmente cuando múltiples usuarios programan diferentes trabajos de Cron. Esto afectaría el momento en que se ejecutarán sus trabajos cron.

Afortunadamente, puede configurar una zona horaria específica para su trabajo cron de la siguiente manera:

Primero, debe exportar la variable TZ en su script de shell antes de cualquier otra entrada de shell. A continuación, acceda a su crontab y use la variable de entorno crontab cron_Tz Al comienzo del archivo CRONTAB.

Supongamos que quiero establecer el trabajo cron para ejecutar un script de copia de seguridad a las 2:20 pm todos los días en Europa/Londres tiempo y no mi hora local. Mi hora local es 2 horas por delante de Londres, así que a las 2:20 pm en Londres, mi hora local será a las 4:20 pm o 1420 horas.

Primero, diríjase al archivo de script de shell y exporte la variable TZ antes de cualquier otra entrada de script. Mira lo que hice en mi guión de shell.

Exportar TZ = Europa/Londres

Guardar los cambios y salir del script.

A continuación, acceda a su archivo CRONTAB ejecutando el comando:

$ crontab -e

Asegúrese de definir la variable crontab CRON_TZ Antes de todas las otras entradas cron de la siguiente manera.

CRON_TZ = Europa/Londres
20 14 * * */home/james/respaldo.mierda

Guardar y salir del crontab. Para estar seguro de la configuración, puede enumerar el CRONTAB usando el comando:

$ crontab -l

Entonces, cuando el reloj marcó las 2:20 pm, hora de Londres, que corresponde a las 4:40 p.m. hora local o 1620 horas, la copia de seguridad fue exitosa.

Conclusión

Esta guía es una demostración perfecta que realmente puede establecer una zona horaria específica para sus crontabs sin cambiar el tiempo de su sistema. De esta manera, puede configurar diferentes tareas para ejecutarse en diferentes zonas horarias para satisfacer sus necesidades, por ejemplo, si desea enviar correos electrónicos a suscriptores de una zona horaria determinada en su momento y no en su hora local.