GNU/Linux >> Tutoriels Linux >  >> Linux

Gestion efficace des fuseaux horaires Linux (tutoriel étape par étape)

Le chronométrage sur ordinateur est essentiel pour de nombreuses raisons, et épeler chacune d'entre elles peut prendre une journée. Mais blague à part, si vous recherchez une gestion efficace des fuseaux horaires Linux, vous êtes au bon endroit.

Dans ce didacticiel, vous explorerez et apprendrez comment utiliser les dates, les heures et les horodatages sous Linux. Certains impriment la date et l'heure actuelles, calculent les dates futures et passées, travaillent avec les fuseaux horaires, etc.

Continuez à lire et maîtrisez le chronométrage comme un pro !

Prérequis

Ce didacticiel comprend des démonstrations pratiques. Pour suivre, vous aurez besoin des éléments suivants :

  • Une machine Linux :ce didacticiel utilise Ubuntu 20.04, mais n'importe quelle distribution Linux moderne fonctionnera.
  • Un éditeur de texte :si vous n'avez pas d'éditeur de texte préféré, vous pouvez utiliser nano, qui est installé par défaut sur la plupart des distributions Linux.

Imprimer la date et l'heure actuelles avec le date Commande

La liste des raisons du chronométrage continue, en fonction de vos besoins pour votre projet. Mais les raisons les plus courantes sont ci-dessous :

  • Les journaux système utilisent des horodatages pour cataloguer le moment où les événements se sont produits.
  • Les versions de logiciels sont souvent liées à des dates précises.
  • Les outils de sécurité réseau utilisent une analyse temporelle pour détecter les anomalies.
  • Les utilisateurs comptent sur une heure précise pour planifier des rendez-vous et des réunions.

Pour l'une de ces raisons, la première chose à faire est d'imprimer la date et l'heure actuelles. Et sous Linux, vous pouvez accomplir cette tâche avec les commandes date et awk. Mais pour commencer, vous exécuterez d'abord la commande date.

Exécutez le date commande ci-dessous sans paramètres pour imprimer la date et l'heure actuelles.

date

Comme vous pouvez le voir ci-dessous, la sortie de la commande, par défaut, inclut les éléments suivants :

  • Le jour de la semaine (vendredi )
  • Le jour numérique du mois (10 )
  • Le nom du mois au format long (vendredi ), et l'année.
  • La date est suivie du temps plein actuel au format 24 heures et du fuseau horaire.

Maintenant, exécutez la commande suivante pour afficher toutes les options disponibles que vous pouvez utiliser avec le date commande.

date --help

Imprimer la date actuelle dans différents formats

Vous avez vu que la commande date seule imprime la date et l'heure actuelles au format complet. Mais généralement, vous devrez modifier le format en fonction de vos besoins.

La bonne nouvelle est que la commande date vous permet d'imprimer la date et l'heure du système dans différents formats. Cette fonctionnalité vous permet d'obtenir de meilleurs visuels de la date et de l'heure actuelles.

1. Exécutez la commande ci-dessous pour imprimer la date actuelle uniquement au format numérique (%D).

date "+DATE: %D”

Vous préférez peut-être voir le fuseau horaire avec la date. Dans ce cas, ajoutez l'option %Z, comme dans la commande ci-dessous :date "+DATE :%D %Z"

2. Ensuite, exécutez la commande suivante pour imprimer la date actuelle au format MMM AAAA. L'option %b imprime le mois abrégé (Nov, Dec, Jan…), tandis que l'option %Y imprime l'année en cours.

date "+DATE: %b %Y"

3. Maintenant, exécutez la commande ci-dessous pour imprimer la date sous forme de mois long (novembre, décembre…) (%B), JJ (%d), AAAA (%Y).

Vous pouvez également enchaîner plusieurs options pour formater la sortie exactement comme vous le souhaitez.

date "+DATE: %B %d,%Y"

4. Enfin, exécutez la même commande à l'étape 3. Mais cette fois, ajoutez les options %I:%M %p pour imprimer l'heure actuelle.

date "+DATE: %B %d,%Y %I:%M %p"

Calculer et imprimer des dates futures et passées

Dans la vraie vie, vous voudrez peut-être calculer une date qui se situe dans le futur. Pourquoi? Peut-être écrivez-vous un script pour effectuer automatiquement des tâches à une date précise. Si oui, calcul des dates futures en utilisant le --date l'option sera utile.

1. Exécutez la commande ci-dessous pour calculer la date 40 jours à partir de la date actuelle. Vous pouvez changer les jours en semaines, mois, années, etc., comme vous le souhaitez.

date --date='40 days'

Ci-dessous, vous pouvez voir la date et l'heure complètes calculées 40 jours à compter de la date actuelle.

2. Ensuite, exécutez la même commande qu'à la première étape. Mais cette fois, ajoutez des options ("+%B %d,%Y %I:%M %p") pour changer le format de sortie.

date --date='40 days' "+%B %d,%Y %I:%M %p"

3. Maintenant, exécutez la commande ci-dessous, en spécifiant un nombre négatif pour calculer les dates dans le passé. La commande ci-dessous calcule la date d'il y a un an à partir de la date actuelle.

date --date='-1 year’

La sortie ci-dessous affiche la date d'une année dans le passé au format par défaut complet. Mais si vous souhaitez modifier le format, vous pouvez appliquer le même format que celui que vous avez appliqué à l'étape 2.

4. Maintenant, exécutez la commande ci-dessous, en utilisant une combinaison d'unités (semaines et jours) avec l'option –date. La commande ci-dessous calcule la date il y a deux semaines et quatre jours à partir de la date actuelle.

date --date='-2 weeks -4 days’

5. Enfin, exécutez la commande ci-dessous pour calculer la date de mardi prochain.

Vous pouvez également utiliser d'autres formats de date que le format numérique pour le --date option. Par exemple, vous pouvez utiliser des noms de mois complets, comme Tuesday , ou des formats d'heure relative comme tomorrow , next , last ., etc.

date --date='next Tuesday'

Imprimer des dates d'incrémentation avec un script bash

L'impression des dates actuelles, passées et futures fonctionne bien avec la commande date. Mais saviez-vous que vous pouvez également écrire un script Bash pour travailler avec les fuseaux horaires, les dates et les heures ? Par exemple, incrémenter la date par jour, semaine ou mois.

L'incrémentation des dates est utile lorsque vous travaillez avec des tâches cron qui doivent s'exécuter quotidiennement, hebdomadairement ou mensuellement.

1. Créez un script Bash nommé date2022.sh avec votre éditeur préféré.

2. Ajoutez le code suivant au fichier date2022.sh, s enregistrez le fichier et fermez l'éditeur.

Le code ci-dessous imprime la date pour chaque jour de la semaine, en commençant par la date d'aujourd'hui et en terminant par la date du lundi suivant.

DATE=2022-05-30

for i in {0..6}
do
   NEXT_DATE=$(date +%m-%d-%Y -d "$DATE + $i day")
   echo "$NEXT_DATE"
done

3. Enfin, exécutez la commande bash ci-dessous pour exécuter le script date2022.sh

bash date2022.sh

Imprimer la date et l'heure actuelles avec l'outil CLI GNU Awk

Jusqu'à présent, vous avez vu comment imprimer des dates et des heures dans différents formats avec le date commande, ce qui est assez bon. Mais avoir plus de façons de manipuler la date et l'heure, que ce soit sur le système réel ou dans un fichier, est toujours mieux.

Quel est l'autre chemin ? L'outil CLI GNU Awk. Awk est un puissant outil de traitement de texte qui peut être utilisé pour un large éventail de tâches. Ces tâches peuvent être, mais sans s'y limiter, l'extraction de données à partir de fichiers journaux et la manipulation et l'analyse de données textuelles.

Mais avant de pouvoir utiliser l'outil GNU Awk CLI, vous devez d'abord l'installer sur votre machine :

1. Exécutez la commande apt update ci-dessous pour mettre à jour votre index de package système.

apt update -y

2. Ensuite, exécutez la commande apt install suivante pour installer l'outil CLI GNU Awk.

apt install gawk -y

3. Une fois installé, exécutez le gawk commande à print le jour de la semaine (%A ), mois (%B ), date du jour numérique (%d ), et l'année (%Y ) où les fonctions suivantes :

  • Le strftime la fonction formate la date et l'heure.
  • La fonction systime renvoie l'heure actuelle du système en secondes depuis l'époque.
gawk 'BEGIN { print strftime("Today is %A, %B %d, %Y.", systime()) }'

Remarquez comment awk vous permet de formater la sortie de manière lisible par l'homme.

4. Enfin, exécutez la commande ci-dessous pour calculer et imprimer la date il y a un mois. La commande ci-dessous utilise la commande date avec un nombre négatif (-1) pour obtenir le premier jour du mois précédent.

awk -v previous_month="$(date -d "`date +%Y%m01` -1 month" +%Y-%m-%d)" '{print previous_month}'

Conversion du format de date dans un fichier

Peut-être avez-vous un fichier contenant des dates dans un format incompatible avec vos paramètres régionaux actuels. Ou les dates dans le fichier ne sont pas suffisamment claires pour être lues par des humains. Si tel est le cas, envisagez d'utiliser l'outil CLI GNU Awk.

Créez un fichier avec votre éditeur de texte préféré et saisissez les lignes suivantes dans le fichier où le format de date n'est pas clair. Donnez au fichier un nom que vous aimez, mais le fichier CSV s'appelle test.csv dans cet exemple.

1,ABC,SSS,20-OCT-16,4,1,0,5,0,0,0,0
2,DEF,AAA,20-JUL-16,4,1,0,5,0,0,0,0

Maintenant, exécutez la commande awk ci-dessous pour extraire et convertir le format de date en un format plus lisible par l'homme de AA-MM-JJ. L'option -F définit le séparateur de champ comme une virgule ou un tiret, et la commande imprime (printf) la date dans le format souhaité.

awk -F'[,-]' '{ printf "%s|20%02d-%02d-%02d,%s\\n", $3, $6, (match("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",$5)+2)/3, $4, $10 }' test.csv

Comme vous pouvez le voir ci-dessous, le format de la date est maintenant beaucoup plus clair.

Vous avez vu qu'awk est un outil puissant qui peut effectuer un large éventail de tâches, comme comparer la date, ajouter un champ de date à un fichier, trier les dates, etc. Mais cela dépasse le cadre de cet article.

Vérification du fuseau horaire à l'aide du grep Commande

Vérifier le fuseau horaire actuel ne devrait pas être une taxe complexe, et la commande grep garantit que cette affirmation reste vraie. La commande grep est un autre puissant outil de traitement de texte que vous pouvez utiliser pour un large éventail de tâches.

Certaines tâches prises en charge par la commande grep sont l'extraction de données à partir de fichiers journaux et la manipulation et l'analyse de données textuelles. Avec ces fonctionnalités, vous pouvez également vérifier votre fuseau horaire actuel avec la commande grep.

Exécutez la commande timedatectl suivante seule pour imprimer la date, l'heure, le fuseau horaire et l'état du service NTP actuels sur votre machine.

timedatectl

Comme vous pouvez le voir ci-dessous, la sortie affiche une poignée d'informations sur la date, l'heure et le fuseau horaire actuels. Ces informations vous permettent de vérifier que le fuseau horaire correct est défini sur votre machine, ce qui permet également de vous assurer que vous n'avez pas de problèmes de synchronisation de l'heure sur votre réseau.

Peut-être aimeriez-vous vérifier la liste des fuseaux horaires avant d'en savoir plus sur la commande grep. Si c'est le cas, exécutez la commande suivante :timedatectl list-timezones

Maintenant, exécutez la commande ci-dessous redirigée vers la commande grep si vous prévoyez de vérifier le fuseau horaire actuel de votre ordinateur pour effectuer les opérations suivantes :

  • Récupérer les informations de date, d'heure et de fuseau horaire à partir du fichier du noyau Linux (timedatectl ).
  • Rechercher et imprimer les lignes de texte qui correspondent au Time zone modèle de texte.
timedatectl | grep “Time zone”

Comme vous pouvez le voir ci-dessous, la sortie affiche uniquement le fuseau horaire actuel défini sur votre machine.

Conclusion

Ce didacticiel vous a présenté de nombreux exemples pratiques d'interrogation de la date, de l'heure et des fuseaux horaires Linux. Vous avez appris à manipuler le format de la date et de l'heure, à calculer les dates passées et futures avec le date commande. Vous avez également exécuté timedatectl et grep commandes pour vérifier le fuseau horaire de votre système.

Maintenant, pourquoi ne pas écrire plus de scripts pour automatiser des tâches telles que le calcul des dates passées et futures ou la conversion des formats de date ? Ou peut-être créer des tâches cron pour planifier l'exécution de vos scripts ?


Linux
  1. Gestion des packages Linux avec apt

  2. Comment vérifier le fuseau horaire sous Linux

  3. 8 exemples de commandes Quick Date sous Linux

  4. Linux runasdate analogique

  5. Linux obtient le décalage UTC des fuseaux horaires actuels (ou autres) à une date et une heure données

Commande Cal sous Linux

Gestion des partitions Linux

7 exemples de commande de date sous Linux

Commandes de gestion de groupe sous Linux

Tutoriel étape par étape sur les scripts shell

Linux date Exemples de commandes