Jak pracować z datą i godziną w Bash za pomocą polecenia daty

Jak pracować z datą i godziną w Bash za pomocą polecenia daty

Polecenie daty to zewnętrzny program Bash, który pozwala ustawić lub wyświetlać datę i godzinę systemu. Zapewnia również kilka opcji formatowania. Polecenie daty jest domyślnie zainstalowane we wszystkich dystrybucjach Linux.

$ data $ typ -a data 
Znajdź lokalizację polecenia daty

Typ polecenie daty w terminalu, który wyświetli bieżącą datę i godzinę.

$ data 
Sprawdź datę w Linux

Zmień datę i godzinę systemu Linux

Za pomocą polecenie daty, Data systemu, czas i strefa czasowa można zmodyfikować, a zmiana musi zostać zsynchronizowana z zegariem sprzętowym.

$ data -set = "czw 12 listopada 13:06:59 IST 2020" $ HWCLOCK -SOSTOHC 
Ustaw datę i godzinę systemu Linux

Opcje formatowania

Dobrym miejscem na uzyskanie listy opcji formatowania będzie strona Man.

$ Man Data 

Zobaczmy niektóre z najczęstszych opcji formatowania, których będziemy korzystać.

  • Aby zastosować użycie formatowania ”+ śledzony przez "formatter".
  • Aby uzyskać listę opcji formatowania dla GNU \ Linux, spójrz na stronę Linked Man.
  • Aby uzyskać listę opcji formatowania dla BSD, spójrz na stronę Linked Man.

Dwie ważne części polecenie daty używa formatu +% i opcja -data.

Teraz zastosujmy formatowanie na polecenie daty. Aby zastosować formatowanie, dodaj plus znak (+) śledzony przez %formattera Jak pokazano w przykładach.

Data obsługi w Linux

Rzućmy okiem, jak korzystać z formatterów związanych z datą w prostym skrypcie powłoki o nazwie 'data.cii'.

# Drukuj rok, miesiąc, dzień i data… echo „Jesteśmy w roku = $ (data + %y)„ echo ”jesteśmy w roku = $ (data + %y)” # różnica między %y a %y jest %y wydrukuje 4 cyfry, a %y wydrukuje ostatnie 2 cyfry roku. echo "Jesteśmy w miesiącu = $ (data +%m)" echo "Jesteśmy w miesiącu = $ (data +%b)" echo "Jesteśmy w miesiącu = $ (data +%b)" # różnica Między %B a %B jest, %B wydrukuje nazwę całego miesiąca, podczas gdy %B wydrukuje skróconą nazwę miesiąca. echo „bieżący dzień miesiąca = $ (data +%d)„ echo ”bieżący dzień tygodnia = $ (data +%a)„ echo ”bieżący dzień tygodnia = $ (data +%a)" # różnica Między %a a %a jest, %a wydrukuje pełną nazwę w dni powszednie, podczas gdy %a wydrukuje skróconą nazwę w dni powszednie. # Zamiast formatowania, aby uzyskać datę, możemy użyć %d, który wydrukuje datę jako %m/ %d/ %y lub %f, który drukuje w %y- %m- %D format. echo „Data za pomocą %d = $ (data + %d)„ echo ”data za pomocą %f = $ (data + %f)” 
Znajdź datę i godzinę za pomocą skryptu

Czas obsługi w Linux

Rzućmy okiem na użycie czas Powiązane formatory w prostym skrypcie powłoki o nazwie 'czas.cii'.

# Godziny drukowania, mins, sekundy, nano sekundy Godziny echa = $ (data +%h) Minuty echa = $ (data +%m) echo sekundy = $ (data +%s) nanosekund echo = $ (data +%n) epok czas epoki = $ (data +%s) echo "aktualny czas = $ (data +%h:%m:%s:%n)" # może również użyć%t, który wyświetla czas w HH: MM: SS Format. Echo „Obecny czas w 24 -godzinnym formacie = $ (data + %t)” # może również użyć %R do wyświetlania czasu w formacie 12 -godzinnym. Echo „Obecny czas w 12 -godzinnym formacie = $ (data +%r)” 
Znajdź czas w Linux za pomocą skryptu

Z -data lub -d flaga

Z --data Lub -D Wejście flagi można przekazać jako ciąg i polecenie daty wie, aby sobie z tym poradzić.

Zobaczmy kilka przykładów, aby zrozumieć, jak to działa.

# Wydrukuj wczorajszą datę i godzinę. echo „wczoraj = $ (data -d„ wczoraj ”)” # Wydrukuj jutro datę i godzinę. echo „jutro = $ (data -d„ jutro ”)” # Znajdź datę i godzinę przed 10 dniami. echo „przed 10 dni = $ (data -d„ jutro -10 dni ”)” # Znajdź ostatni miesiąc i następny miesiąc echo w zeszłym miesiącu = $ (data -d „w zeszłym miesiącu” „%b”) „echo” w przyszłym miesiącu = $ (data -d „następny miesiąc” „%b”) ” # Znajdź w zeszłym roku i w przyszłym roku echo„ w zeszłym roku = $ (data -d „w zeszłym roku” „+%y”) „echo” w przyszłym roku = $ = $ )? = $ (data -d „Today +2 dni” „ +%a”) 
Sprawdź datę za pomocą formatowania

Wspólne operacje

obliczyć liczbę dni między 2 danymi datami.

$ echo $ ((($ (data -d „2020-11-10” „+%s”)-$ (data -d „2020-11-01” „+%s”)) / 86400))) 

Znajdź dany rok to rok skokowy, czy nie.

$ za y w 2000… 2020; do daty -d $ y-02-29 &>/dev/null && echo $ y to rok skokowy; zrobione 
Znajdź rok LEAP w Linux

Przypisanie wyjścia polecenia daty do zmiennej.

$ Dziś = $ (data +%y-%m-%d) lub $ Today1 = $ (data +%f) $ echo $ dziś $ echo Today1 
Przypisz datę do zmiennej

Utwórz pliki dziennika z datą dodaną do nazwy pliku.

Dodanie daty i godziny podczas tworzenia plików dziennika, kopii zapasowej lub plików tekstowych jest powszechną operacją, którą najczęściej się spotykamy. Weźmy przykład, aby wziąć kopię zapasową, stworzyliśmy skrypt powłoki.

Ten skrypt odbędzie kopię zapasową z 00:00 do 23:59 i zaplanowany będzie codziennie o 00:00 następnego dnia. Chcemy tworzyć pliki dziennika z wczorajszym formatem daty.

Custom_format = $ (data-date "wczoraj" "+%d-%y-%h:%m") log_file =/var/log/custom_application/Application _ $ Custom_format.log echo "Skrypt uruchomiono" >> $ log_file… bloki kodu… echo "Skrypt wypełniony" >> $ log_file 

To wszystko dla tego artykułu. W tym artykule widzieliśmy, jak korzystać z daty i godziny Bash w Linux. Daj nam znać swoją opinię.