Comment puis-je définir le fuseau horaire pour les crontabs?

Comment puis-je définir le fuseau horaire pour les crontabs?
Crontab, une forme raccourcie de Table de cron, est à la fois une commande et un fichier texte dans les systèmes UNIX / Linux utilisés pour déterminer la planification des travaux CRON. Qu'est-ce qu'un travail cron? Un travail cron, également largement appelé Cron, est un planificateur basé sur le temps qui exécute des tâches dans les systèmes Linux à des heures spécifiées. Il fonctionne avec l'aide des travaux Crond Daemon Cron sont extrêmement utiles pour automatiser les scripts de shell et d'autres commandes qui doivent être exécutées à intervalles réguliers, ce qui serait autrement fastidieux lorsqu'il était terminé manuellement.

Habituellement, les travaux cron fonctionnent en utilisant l'heure locale définie dans le système. Cependant, vous préférez peut-être exécuter le travail cron dans un fuseau horaire différent sans nécessairement modifier l'heure et la date de votre serveur.

Vous pouvez vérifier votre heure locale à l'aide de la commande timeDatectl comme suit:

$ timeDatectl

Vous pouvez également utiliser la commande DATE comme suit:

$ date

Alors, comment pouvez-vous définir un autre fuseau horaire pour vos crontabs? Découvrons-le.

Comment définir le fuseau horaire pour les crontabs

Dans votre système Linux local, les fuseaux horaires sont généralement spécifiés dans le / usr / share / ZoneInfo annuaire. Le répertoire contient une liste de continents et de pays et leurs fuseaux horaires, comme indiqué ci-dessous.

$ ls / usr / share / zoneInfo /

Vous pouvez facilement ajuster le fuseau horaire actuel à un autre en utilisant la syntaxe illustrée. Par exemple, pour définir le système sur l'heure à Tokyo, au Japon, exécutez simplement:

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

Cependant, vous ne pouvez pas modifier le temps de votre système, surtout lorsque plusieurs utilisateurs planifient différents travaux CRON. Cela affecterait le temps que leurs travaux Cron fonctionneront.

Heureusement, vous pouvez configurer un fuseau horaire spécifique pour votre travail CRON comme suit:

Tout d'abord, vous devez exporter la variable TZ dans votre script de shell avant toute autre entrée de shell. Ensuite, accédez à votre crontab et utilisez la variable CRONTAB CRON_TZ au début du fichier crontab.

Supposons que je souhaite définir le travail cron pour exécuter un script de sauvegarde à 14h20 tous les jours Europe / Londres le temps et pas mon heure locale. Mon heure locale est de 2 heures d'avance sur Londres, donc à 14h20 à Londres, mon heure locale sera à 16h20 ou 1420 heures.

Tout d'abord, dirigez-vous vers le fichier de script shell et exportez la variable TZ avant toute autre entrée de script. Découvrez ce que j'ai fait dans mon script shell.

Export TZ = Europe / Londres

Enregistrer les modifications et quitter le script.

Ensuite, accédez à votre fichier crontab en exécutant la commande:

$ crontab -e

Assurez-vous de définir la variable crontab Cron_tz Avant toutes les autres entrées cron comme suit.

Cron_tz = Europe / Londres
20 14 * * * / Home / James / Backup.shot

Économisez et sortez du crontab. Pour être sûr des paramètres, vous pouvez répertorier le crontab à l'aide de la commande:

$ crontab -l

Ainsi, lorsque l'horloge a coché à 14 h 20 l'heure de Londres, ce qui correspond à 16 h 40, heure locale ou 1620, la sauvegarde a réussi.

Conclusion

Ce guide est une démonstration parfaite que vous pouvez réellement définir un fuseau horaire spécifié pour vos crontabs sans changer le temps de votre système. De cette façon, vous pouvez configurer différentes tâches pour s'exécuter dans différentes fuseaux horaires en fonction de vos besoins, par exemple, si vous souhaitez envoyer des e-mails aux abonnés d'un certain fuseau horaire à leur heure et non à votre heure locale.