Come posso impostare il fuso orario per i crontabs?

Come posso impostare il fuso orario per i crontabs?
Crrontab, una forma abbreviata di Tavolo cron, è sia un comando che un file di testo nei sistemi UNIX/Linux utilizzati per determinare la pianificazione dei lavori Cron. Cos'è un lavoro cron? Un lavoro Cron, anch'esso ampiamente definito semplicemente come Cron, è uno scheduler basato sul tempo che esegue attività nei sistemi Linux in tempi specificati. Funziona con l'aiuto dei lavori di Crond Daemon Cron sono estremamente utili per automatizzare gli script di shell e altri comandi che devono essere eseguiti a intervalli regolari, che altrimenti sarebbero noiosi quando fatti manualmente.

Di solito, i lavori CRON eseguono l'ora locale definita nel sistema. Tuttavia, potresti preferire eseguire il lavoro Cron in un fuso orario diverso senza necessariamente cambiare l'ora e la data del server.

Puoi controllare l'ora locale utilizzando il comando TimeDatectl come segue:

$ timeDatectl

Puoi anche usare il comando della data come segue:

$ data

Quindi, come puoi impostare un fuso orario diverso per i tuoi crontabs? Scopriamolo.

Come impostare il fuso orario per i crontabs

Nel sistema Linux locale, i fulmini sono generalmente specificati in /usr/share/zoneinfo directory. La directory contiene un elenco di continenti e paesi e loro fulmine, come mostrato di seguito.

$ ls/usr/share/zoneinfo/

È possibile regolare facilmente il fuso orario corrente su uno diverso usando la sintassi mostrata. Ad esempio, per impostare il sistema al tempo a Tokyo, in Giappone, eseguire semplicemente:

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

Tuttavia, non è possibile modificare i tempi del tuo sistema, soprattutto quando più utenti pianificano diversi lavori cron. Ciò influenzerebbe il tempo in cui i loro lavori cron si svolgano.

Per fortuna, puoi configurare un fuso orario specifico per il tuo lavoro CRON come segue:

Innanzitutto, è necessario esportare la variabile TZ nello script shell prima di qualsiasi altra visione della shell. Successivamente, accedi al tuo crontab e usa il cron variabile dell'ambiente Crrontab_Tz All'inizio del file Crrontab.

Supponiamo di voler impostare il lavoro Cron per eseguire uno script di backup alle 14:20 ogni giorno in Europa/Londra tempo e non il mio orario locale. La mia ora locale è di 2 ore prima del tempo di Londra, quindi alle 14:20 a Londra, la mia ora locale sarà le 16:20 o 1420.

Innanzitutto, vai al file di script shell ed esporta la variabile TZ prima di qualsiasi altra visione dello script. Dai un'occhiata a quello che ho fatto nella mia sceneggiatura di shell.

Esportazione tz = Europa/Londra

Salva le modifiche ed esci dallo script.

Successivamente, accedi al file Crrontab eseguendo il comando:

$ crontab -e

Assicurati di definire la variabile Crrontab Cron_tz Prima di tutte le altre voci di Cron come segue.

Cron_tz = Europa/Londra
20 14 * * */Home/James/Backup.sh

Salva ed esci dal crontab. Per essere sicuri delle impostazioni, è possibile elencare il crontab usando il comando:

$ crontab -l

Quindi, quando l'orologio ha spuntato le 14:20 di Londra ora, che corrisponde alle 16:40 ora locale o 1620 ore, il backup ha avuto successo.

Conclusione

Questa guida è una dimostrazione perfetta che puoi effettivamente impostare un fuso orario specificato per i tuoi crontab senza cambiare il tempo del sistema. In questo modo, puoi configurare diverse attività da eseguire in diversi fulmine per soddisfare le tue esigenze, ad esempio, se si desidera inviare e -mail agli abbonati di un determinato fuso orario al loro tempo e non all'ora locale.