crontab

Come posso impostare il fuso orario per Crontabs?

Come posso impostare il fuso orario per Crontabs?
Crontab, una forma abbreviata di Tavolo cron, è sia un comando che un file di testo nei sistemi UNIX/Linux utilizzato per determinare la pianificazione dei lavori Cron. Che cos'è un lavoro Cron? Un lavoro Cron, anche ampiamente indicato semplicemente come Cron, è uno scheduler basato sul tempo che esegue attività nei sistemi Linux in orari specificati. Funziona con l'aiuto del demone crond I lavori Cron sono estremamente utili per automatizzare gli script Shell e altri comandi che devono essere eseguiti a intervalli regolari, che altrimenti sarebbero noiosi se eseguiti manualmente.

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

Puoi controllare la tua ora locale usando il comando timedatectl come segue:

$ timedatectl

Puoi anche usare il comando date come segue:

$ data

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

Come impostare il fuso orario per Crontabs

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

$ ls /usr/share/zoneinfo/

Puoi facilmente regolare il fuso orario corrente su uno diverso usando la sintassi mostrata. Ad esempio, per impostare il sistema sull'ora di Tokyo, in Giappone, è sufficiente eseguire:

$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

Tuttavia, non è possibile modificare l'ora del sistema, soprattutto quando più utenti pianificano diversi lavori Cron. Ciò influenzerebbe il tempo di esecuzione dei loro lavori Cron.

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

Innanzitutto, devi esportare la variabile TZ nello script Shell prima di qualsiasi altra voce Shell. Quindi, accedi al tuo crontab e usa la variabile d'ambiente crontab CRON_TZ all'inizio del file crontab.

Supponiamo di voler impostare il processo Cron per eseguire uno script di backup alle 14:20 ogni giorno in Europa/Londra ora e non la mia ora locale. La mia ora locale è 2 ore avanti rispetto all'ora di Londra, quindi alle 14:20 a Londra, la mia ora locale sarà alle 16:20 o 1420 HRS.

Per prima cosa, vai al file di script Shell ed esporta la variabile TZ prima di qualsiasi altra voce di script. Guarda cosa ho fatto nel mio script Shell.

EXPORT TZ=Europa/Londra

Salva le modifiche ed esci dallo script.

Successivamente, accedi al tuo file crontab eseguendo il comando:

$ crontab -e

Assicurati di definire la variabile crontab CRON_TZ prima di tutte le altre voci Cron come segue.

CRON_TZ=Europa/Londra
20 14 * * * /home/james/backup.sh

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

$ crontab -l

Quindi, quando l'orologio ha segnato le 14:20 ora di Londra, che corrisponde alle 16:40 ora locale o 1620 HRS, il backup è andato a buon fine.

Conclusione

Questa guida è una dimostrazione perfetta che puoi effettivamente impostare un fuso orario specifico per i tuoi Crontab senza modificare l'ora del tuo sistema. In questo modo, puoi configurare diverse attività da eseguire in fusi orari diversi in base alle tue esigenze, ad esempio se desideri inviare e-mail agli abbonati di un determinato fuso orario alla loro ora e non alla tua ora locale.

I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...
Le migliori distribuzioni Linux per il gioco nel 2021
Il sistema operativo Linux ha fatto molta strada dal suo aspetto originale, semplice e basato su server. Questo sistema operativo è notevolmente migli...
Come acquisire e riprodurre in streaming la tua sessione di gioco su Linux
In passato, giocare era considerato solo un hobby, ma con il tempo l'industria dei giochi ha visto una crescita enorme in termini di tecnologia e nume...