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.