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.