GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Effektive Verwaltung von Linux-Zeitzonen (Schritt-für-Schritt-Anleitung)

Die Zeitmessung auf Computern ist aus vielen Gründen unerlässlich, und das Buchstabieren jeder einzelnen kann einen Tag dauern. Aber Spaß beiseite, wenn Sie nach einer effektiven Verwaltung von Linux-Zeitzonen suchen, sind Sie hier genau richtig.

In diesem Lernprogramm erfahren Sie, wie Sie in Linux mit Datumsangaben, Uhrzeiten und Zeitstempeln arbeiten können. Einige drucken das aktuelle Datum und die aktuelle Uhrzeit, berechnen zukünftige und vergangene Daten, arbeiten mit Zeitzonen und mehr.

Lies weiter und erschlage die Zeitnahme wie ein Profi!

Voraussetzungen

Dieses Tutorial umfasst praktische Demonstrationen. Um mitzumachen, benötigen Sie Folgendes:

  • Ein Linux-Rechner – Dieses Tutorial verwendet Ubuntu 20.04, aber jede moderne Linux-Distribution funktioniert.
  • Ein Texteditor – Wenn Sie keinen bevorzugten Texteditor haben, können Sie nano verwenden, das standardmäßig auf den meisten Linux-Distributionen installiert ist.

Drucken des aktuellen Datums und der Uhrzeit mit date Befehl

Die Liste der Gründe für die Zeitmessung lässt sich je nach Ihren Anforderungen für Ihr Projekt fortsetzen. Aber die häufigsten Gründe sind unten:

  • Systemprotokolle verwenden Zeitstempel, um zu katalogisieren, wann Ereignisse aufgetreten sind.
  • Softwareversionen sind oft an bestimmte Daten gebunden.
  • Netzwerksicherheitstools verwenden zeitbasierte Analysen, um Anomalien zu erkennen.
  • Benutzer verlassen sich auf die genaue Zeit, um Termine und Besprechungen zu planen.

Aus diesen Gründen sollten Sie als Erstes das aktuelle Datum und die aktuelle Uhrzeit drucken. Und unter Linux können Sie diese Aufgabe mit den Befehlen date und awk erledigen. Aber für den Anfang führen Sie zuerst den date-Befehl aus.

Führen Sie date aus Befehl unten ohne Parameter, um das aktuelle Datum und die Uhrzeit zu drucken.

date

Wie Sie unten sehen können, enthält die Ausgabe des Befehls standardmäßig Folgendes:

  • Der Wochentag (Freitag )
  • Der numerische Tag des Monats (10 )
  • Der Monatsname im Langformat (Freitag ) und das Jahr.
  • Dem Datum folgt die aktuelle Vollzeit im 24-Stunden-Format und die Zeitzone.

Führen Sie nun den folgenden Befehl aus, um alle verfügbaren Optionen anzuzeigen, die Sie zusammen mit date verwenden können Befehl.

date --help

Drucken des aktuellen Datums in verschiedenen Formaten

Sie haben gesehen, dass allein der date-Befehl das aktuelle Datum und die Uhrzeit im vollen Format ausgibt. Aber in der Regel müssen Sie das Format je nach Bedarf ändern.

Die gute Nachricht ist, dass Sie mit dem Datumsbefehl das Systemdatum und die Uhrzeit in verschiedenen Formaten drucken können. Mit dieser Funktion erhalten Sie eine bessere Darstellung des aktuellen Datums und der aktuellen Uhrzeit.

1. Führen Sie den folgenden Befehl aus, um das aktuelle Datum nur im numerischen Format (%D) zu drucken.

date "+DATE: %D”

Vielleicht möchten Sie lieber die Zeitzone zusammen mit dem Datum sehen. Hängen Sie in diesem Fall die Option %Z an, wie im folgenden Befehl:date „+DATE:%D %Z“

2. Führen Sie als Nächstes den folgenden Befehl aus, um das aktuelle Datum im Format MMM JJJJ zu drucken. Die Option %b druckt den abgekürzten Monat (Nov, Dec, Jan…), während die Option %Y das aktuelle Jahr druckt.

date "+DATE: %b %Y"

3. Führen Sie nun den folgenden Befehl aus, um das Datum als langen Monat (November, Dezember…) (%B), TT (%d), JJJJ (%Y) zu drucken.

Sie können auch mehrere Optionen miteinander verketten, um die Ausgabe genau so zu formatieren, wie Sie es möchten.

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

4. Führen Sie schließlich denselben Befehl in Schritt drei aus. Aber dieses Mal fügen Sie die Optionen %I:%M %p hinzu, um die aktuelle Uhrzeit zu drucken.

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

Künftige und vergangene Daten berechnen und drucken

Im wirklichen Leben möchten Sie vielleicht ein Datum berechnen, das in der Zukunft liegt. Wieso den? Vielleicht schreiben Sie ein Skript, um Aufgaben automatisch an einem bestimmten Datum auszuführen. Wenn ja, berechnen Sie zukünftige Daten mit dem --date Option wird sich als nützlich erweisen.

1. Führen Sie den folgenden Befehl aus, um das Datum 40 Tage nach dem aktuellen Datum zu berechnen. Sie können Tage nach Belieben in Wochen, Monate, Jahre usw. ändern.

date --date='40 days'

Unten sehen Sie das berechnete vollständige Datum und die Uhrzeit 40 Tage nach dem aktuellen Datum.

2. Führen Sie als Nächstes denselben Befehl wie in Schritt eins aus. Aber diesmal fügen Sie Optionen hinzu („+%B %d,%Y %I:%M %p“), um das Ausgabeformat zu ändern.

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

3. Führen Sie nun den folgenden Befehl aus und geben Sie eine negative Zahl an, um Datumsangaben in der Vergangenheit zu berechnen. Der folgende Befehl berechnet das Datum vor einem Jahr aus dem aktuellen Datum.

date --date='-1 year’

Die folgende Ausgabe zeigt das Datum ein Jahr in der Vergangenheit im vollständigen Standardformat. Aber wenn Sie das Format ändern möchten, können Sie dasselbe Format anwenden, das Sie in Schritt zwei verwendet haben.

4. Führen Sie nun den folgenden Befehl aus und verwenden Sie eine Kombination von Einheiten (Wochen und Tage) mit der Option –date. Der folgende Befehl berechnet das Datum vor zwei Wochen und vier Tagen aus dem aktuellen Datum.

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

5. Führen Sie zuletzt den folgenden Befehl aus, um das Datum nächsten Dienstag zu berechnen.

Neben dem Zahlenformat für --date können Sie auch andere Datumsformate verwenden Möglichkeit. Sie können beispielsweise vollständige Monatsnamen wie Tuesday verwenden , oder relative Zeitformate wie tomorrow , next , last . usw.

date --date='next Tuesday'

Inkrementierende Datumsangaben mit einem Bash-Skript drucken

Das Drucken aktueller, vergangener und zukünftiger Daten funktioniert gut mit dem Datumsbefehl. Aber wussten Sie, dass Sie auch ein Bash-Skript schreiben können, um mit Zeitzonen, Daten und Uhrzeiten zu arbeiten? Zum Beispiel das Datum um Tag, Woche oder Monat erhöhen.

Das Erhöhen von Datumsangaben ist hilfreich, wenn Sie mit Cron-Jobs arbeiten, die täglich, wöchentlich oder monatlich ausgeführt werden müssen.

1. Erstellen Sie ein Bash-Skript namens date2022.sh mit Ihrem bevorzugten Editor.

2. Fügen Sie der Datei date2022.sh, s den folgenden Code hinzu Speichern Sie die Datei und schließen Sie den Editor.

Der folgende Code gibt das Datum für jeden Wochentag aus, beginnend mit dem heutigen Datum und endend mit dem Datum des folgenden Montags.

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. Führen Sie abschließend den folgenden Bash-Befehl aus, um das date2022.sh-Skript auszuführen

bash date2022.sh

Drucken des aktuellen Datums und der aktuellen Uhrzeit mit dem GNU Awk CLI Tool

Bisher haben Sie gesehen, wie Sie mit dem date Datum und Uhrzeit in verschiedenen Formaten drucken Befehl, der gut genug ist. Aber es ist immer besser, mehr Möglichkeiten zu haben, Datum und Uhrzeit zu manipulieren, sei es auf dem eigentlichen System oder in einer Datei.

Was ist der andere Weg? Das GNU Awk CLI-Tool. Awk ist ein leistungsstarkes Textverarbeitungstool, das für eine Vielzahl von Aufgaben verwendet werden kann. Diese Aufgaben können unter anderem das Extrahieren von Daten aus Protokolldateien und das Bearbeiten und Analysieren von Textdaten sein.

Aber bevor Sie das GNU Awk CLI-Tool verwenden können, müssen Sie es zuerst auf Ihrem Computer installieren:

1. Führen Sie den folgenden Befehl apt update aus, um Ihren Systempaketindex zu aktualisieren.

apt update -y

2. Führen Sie als Nächstes den folgenden apt install-Befehl aus, um das GNU Awk CLI-Tool zu installieren.

apt install gawk -y

3. Führen Sie nach der Installation gawk aus Befehl an print der Wochentag (%A ), Monat (%B ), numerisches aktuelles Datum (%d ) und Jahr (%Y ) wobei die folgenden Funktionen:

  • Der strftime Funktion formatiert das Datum und die Uhrzeit.
  • Die systime-Funktion gibt die aktuelle Systemzeit in Sekunden seit der Epoche zurück.
gawk 'BEGIN { print strftime("Today is %A, %B %d, %Y.", systime()) }'

Beachten Sie, wie Sie mit awk die Ausgabe menschenlesbar formatieren können.

4. Führen Sie zuletzt den folgenden Befehl aus, um das Datum vor einem Monat zu berechnen und zu drucken. Der folgende Befehl verwendet den date-Befehl mit einer negativen Zahl (-1), um den ersten Tag des vorherigen Monats zu erhalten.

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

Konvertieren des Datumsformats in einer Datei

Möglicherweise haben Sie eine Datei mit Datumsangaben in einem Format, das mit Ihrem aktuellen Gebietsschema nicht kompatibel ist. Oder die Daten in der Datei sind nicht klar genug, um von Menschen gelesen zu werden. Wenn dies der Fall ist, ziehen Sie die Verwendung des GNU Awk CLI-Tools in Betracht.

Erstellen Sie eine Datei mit Ihrem bevorzugten Texteditor und geben Sie die folgenden Zeilen in die Datei ein, wenn das Datumsformat unklar ist. Geben Sie der Datei einen beliebigen Namen, aber die CSV-Datei heißt test.csv in diesem Beispiel.

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

Führen Sie nun den folgenden awk-Befehl aus, um das Datumsformat zu extrahieren und in ein besser lesbares Format von YY-MM-DD zu konvertieren. Die Option -F setzt das Feldtrennzeichen als Komma oder Bindestrich, und der Befehl druckt (printf) das Datum in Ihrem gewünschten Format.

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

Wie Sie unten sehen können, ist das Datumsformat jetzt viel klarer.

Sie haben gesehen, dass awk ein mächtiges Werkzeug ist, das eine Vielzahl von Aufgaben ausführen kann, wie das Vergleichen des Datums, das Hinzufügen eines Datumsfelds zu einer Datei, das Sortieren der Daten usw. Aber das würde den Rahmen dieses Artikels sprengen.

Überprüfen der Zeitzone mit grep Befehl

Das Überprüfen der aktuellen Zeitzone sollte keine komplexe Aufgabe sein, und der grep-Befehl stellt sicher, dass diese Aussage wahr bleibt. Der Befehl grep ist ein weiteres leistungsstarkes Textverarbeitungstool, das Sie für eine Vielzahl von Aufgaben verwenden können.

Einige Aufgaben, die der Befehl grep unterstützt, sind das Extrahieren von Daten aus Protokolldateien und das Bearbeiten und Analysieren von Textdaten. Mit diesen Funktionen können Sie auch Ihre aktuelle Zeitzone mit dem grep-Befehl überprüfen.

Führen Sie den folgenden timedatectl-Befehl allein aus, um das aktuelle Datum, die Uhrzeit, die Zeitzone und den NTP-Dienststatus auf Ihrem Computer zu drucken.

timedatectl

Wie Sie unten sehen können, zeigt die Ausgabe eine Handvoll Informationen über das aktuelle Datum, die Uhrzeit und die Zeitzone. Anhand dieser Informationen können Sie überprüfen, ob auf Ihrem Computer die richtige Zeitzone eingestellt ist, was auch dazu beiträgt, dass Sie keine Probleme mit der Zeitsynchronisierung in Ihrem Netzwerk haben.

Vielleicht möchten Sie die Liste der Zeitzonen überprüfen, bevor Sie mehr über den grep-Befehl erfahren. Führen Sie in diesem Fall den folgenden Befehl aus:timedatectl list-timezones

Führen Sie nun den folgenden Befehl aus, der an den Befehl grep geleitet wird, wenn Sie die aktuelle Zeitzone Ihres Computers überprüfen möchten, um Folgendes auszuführen:

  • Holen Sie Datum, Uhrzeit und Zeitzoneninformationen aus der Linux-Kernel-Datei (timedatectl ).
  • Suchen und drucken Sie Textzeilen, die mit Time zone übereinstimmen Textmuster.
timedatectl | grep “Time zone”

Wie Sie unten sehen können, zeigt die Ausgabe nur die aktuelle Zeitzone, die auf Ihrem Computer eingestellt ist.

Schlussfolgerung

Dieses Tutorial führte Sie durch viele praktische Beispiele für die Abfrage von Datum, Uhrzeit und Linux-Zeitzonen. Sie haben gelernt, das Datums- und Zeitformat zu manipulieren und vergangene und zukünftige Daten mit date zu berechnen Befehl. Sie haben auch timedatectl ausgeführt und grep Befehle, um die Zeitzone Ihres Systems zu überprüfen.

Warum schreiben Sie jetzt nicht mehr Skripte, um Aufgaben wie das Berechnen vergangener und zukünftiger Daten oder das Konvertieren von Datumsformaten zu automatisieren? Oder vielleicht Cron-Jobs erstellen, um die Ausführung Ihrer Skripte zu planen?


Linux
  1. Linux-Paketverwaltung mit apt

  2. 8 Linux-Befehle für effektives Prozessmanagement

  3. Kali Linux Burp Suite-Tutorial

  4. date-Befehlsbeispiele in Linux

  5. Holen Sie sich die aktuelle Zeit in Sekunden seit der Epoche auf Linux, Bash

Cal-Befehl unter Linux

Linux-Partitionsverwaltung

7 Beispiele für Datumsbefehle in Linux

Gruppenverwaltungsbefehle in Linux

Shell-Scripting Schritt-für-Schritt-Tutorial

Beispiele für Linux-Datumsbefehle