GNU/Linux >> Belajar Linux >  >> Linux

Manajemen Zona Waktu Linux yang Efektif (Tutorial Langkah demi Langkah)

Ketepatan waktu di komputer sangat penting karena berbagai alasan, dan mengeja masing-masing mungkin memakan waktu satu hari. Tapi bercanda, jika Anda mencari manajemen zona waktu Linux yang efektif, Anda telah datang ke tempat yang tepat.

Dalam tutorial ini, Anda akan menjelajahi dan mempelajari bagaimana Anda dapat bekerja dengan tanggal, waktu, dan stempel waktu di Linux. Beberapa mencetak tanggal dan waktu saat ini, menghitung tanggal masa depan dan masa lalu, bekerja dengan zona waktu, dan banyak lagi.

Baca terus dan selesaikan ketepatan waktu seperti seorang profesional!

Prasyarat

Tutorial ini terdiri dari demonstrasi langsung. Untuk mengikuti, Anda memerlukan yang berikut ini:

  • Mesin Linux – Tutorial ini menggunakan Ubuntu 20.04, tetapi semua distribusi Linux modern akan berfungsi.
  • Editor teks – Jika Anda tidak memiliki editor teks pilihan, Anda dapat menggunakan nano, yang diinstal secara default di sebagian besar distribusi Linux.

Mencetak Tanggal dan Waktu Saat Ini dengan date Perintah

Daftar alasan untuk ketepatan waktu terus berlanjut, tergantung pada kebutuhan Anda untuk proyek Anda. Tetapi alasan yang paling umum adalah di bawah ini:

  • Log sistem menggunakan stempel waktu untuk membuat katalog saat peristiwa terjadi.
  • Rilis perangkat lunak sering dikaitkan dengan tanggal tertentu.
  • Alat keamanan jaringan menggunakan analisis berbasis waktu untuk mendeteksi anomali.
  • Pengguna mengandalkan waktu yang akurat untuk menjadwalkan janji temu dan rapat.

Untuk salah satu alasan ini, hal pertama yang mungkin ingin Anda lakukan adalah mencetak tanggal dan waktu saat ini. Dan di Linux, Anda dapat menyelesaikan tugas ini dengan perintah tanggal dan awk. Tetapi sebagai permulaan, Anda akan menjalankan perintah tanggal terlebih dahulu.

Jalankan date perintah di bawah ini tanpa parameter untuk mencetak tanggal dan waktu saat ini.

date

Seperti yang Anda lihat di bawah, output perintah, secara default, termasuk yang berikut:

  • Hari dalam seminggu (Jumat )
  • Hari numerik dalam sebulan (10 )
  • Nama bulan dalam format panjang (Jumat ), dan tahun.
  • Tanggal diikuti dengan waktu penuh saat ini dalam format 24 jam dan zona waktu.

Sekarang, jalankan perintah berikut untuk melihat semua opsi yang tersedia yang dapat Anda gunakan bersama dengan date perintah.

date --help

Mencetak Tanggal Saat Ini dalam Berbagai Format

Anda telah melihat bahwa perintah tanggal sendiri mencetak tanggal dan waktu saat ini dalam format penuh. Namun biasanya, Anda harus mengubah formatnya tergantung kebutuhan Anda.

Kabar baiknya adalah perintah tanggal memungkinkan Anda mencetak tanggal dan waktu sistem dalam format yang berbeda — fitur ini memungkinkan Anda mendapatkan visual tanggal dan waktu yang lebih baik.

1. Jalankan perintah di bawah ini untuk mencetak tanggal saat ini hanya dalam format numerik (%D).

date "+DATE: %D”

Mungkin Anda lebih suka melihat zona waktu beserta tanggalnya. Dalam hal ini, tambahkan opsi %Z, seperti pada perintah di bawah ini:tanggal “+DATE:%D %Z”

2. Selanjutnya, jalankan perintah berikut untuk mencetak tanggal saat ini dalam format MMM YYYY. Opsi %b mencetak bulan yang disingkat (Nov, Des, Jan…), sedangkan opsi %Y mencetak tahun berjalan.

date "+DATE: %b %Y"

3. Sekarang, jalankan perintah di bawah ini untuk mencetak tanggal sebagai Bulan yang panjang (November, Desember…) (%B), DD (%d), YYYY (%Y).

Anda juga dapat menggabungkan beberapa opsi untuk memformat output persis seperti yang Anda inginkan.

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

4. Terakhir, jalankan perintah yang sama di langkah ketiga. Tapi kali ini, tambahkan opsi %I:%M %p untuk mencetak waktu saat ini.

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

Menghitung dan Mencetak Tanggal Masa Depan dan Masa Lalu

Dalam kehidupan nyata, Anda mungkin ingin menghitung tanggal di masa depan. Mengapa? Mungkin Anda sedang menulis skrip untuk melakukan tugas secara otomatis pada tanggal tertentu. Jika demikian, hitung tanggal mendatang menggunakan --date pilihan akan berguna.

1. Jalankan perintah di bawah ini untuk menghitung tanggal 40 hari dari tanggal saat ini. Anda dapat mengubah hari ke minggu, bulan, tahun, dll., sesuka Anda.

date --date='40 days'

Di bawah ini, Anda dapat melihat tanggal dan waktu penuh terhitung 40 hari dari tanggal saat ini.

2. Selanjutnya, jalankan perintah yang sama seperti yang Anda lakukan pada langkah pertama. Tapi kali ini, tambahkan opsi (“+%B %d,%Y %I:%M %p”) untuk mengubah format output.

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

3. Sekarang, jalankan perintah di bawah ini, tentukan angka negatif untuk menghitung tanggal di masa lalu. Perintah di bawah ini menghitung tanggal satu tahun yang lalu dari tanggal saat ini.

date --date='-1 year’

Output di bawah ini menunjukkan tanggal satu tahun di masa lalu dalam format default penuh. Tetapi jika Anda ingin mengubah formatnya, Anda dapat menerapkan format yang sama seperti yang Anda lakukan pada langkah kedua.

4. Sekarang, jalankan perintah di bawah ini, menggunakan kombinasi unit (minggu dan hari) dengan opsi –tanggal. Perintah di bawah ini menghitung tanggal dua minggu dan empat hari yang lalu dari tanggal saat ini.

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

5. Terakhir, jalankan perintah di bawah ini untuk menghitung tanggal Selasa depan.

Anda juga dapat menggunakan format tanggal lain selain format numerik untuk --date pilihan. Misalnya, Anda dapat menggunakan nama bulan penuh, seperti Tuesday , atau format waktu relatif seperti tomorrow , next , last ., dll.

date --date='next Tuesday'

Mencetak Tanggal Bertambah dengan Skrip Bash

Mencetak tanggal saat ini, masa lalu, dan masa depan berfungsi dengan baik dengan perintah tanggal. Tetapi tahukah Anda bahwa Anda juga dapat menulis skrip Bash untuk bekerja dengan zona waktu, tanggal, dan waktu? Misalnya, menambah tanggal berdasarkan hari, minggu, atau bulan.

Penambahan tanggal berguna saat bekerja dengan tugas cron yang harus dijalankan setiap hari, mingguan, atau bulanan.

1. Buat skrip Bash bernama date2022.sh dengan editor pilihan Anda.

2. Tambahkan kode berikut ke file date2022.sh, s simpan file, dan tutup editor.

Kode di bawah ini mencetak tanggal untuk setiap hari dalam seminggu, dimulai dengan tanggal hari ini dan diakhiri dengan tanggal Senin berikutnya.

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. Terakhir, jalankan perintah bash di bawah ini untuk menjalankan skrip date2022.sh

bash date2022.sh

Mencetak Tanggal dan Waktu Saat Ini dengan Alat GNU Awk CLI

Sejauh ini, Anda telah melihat cara mencetak tanggal dan waktu dalam format yang berbeda dengan date perintah, yang cukup baik. Tetapi memiliki lebih banyak cara untuk memanipulasi tanggal dan waktu, baik itu pada sistem yang sebenarnya atau dalam file, selalu lebih baik.

Apa cara lain? Alat GNU Awk CLI. Awk adalah alat pemrosesan teks yang kuat yang dapat digunakan untuk berbagai tugas. Tugas ini dapat tetapi tidak terbatas pada mengekstrak data dari file log dan memanipulasi serta menganalisis data teks.

Tetapi sebelum Anda dapat menggunakan alat GNU Awk CLI, Anda harus menginstalnya terlebih dahulu di mesin Anda:

1. Jalankan perintah apt update di bawah ini untuk memperbarui indeks paket sistem Anda.

apt update -y

2. Selanjutnya, jalankan perintah apt install berikut untuk menginstal alat GNU Awk CLI.

apt install gawk -y

3. Setelah terinstal, jalankan gawk perintah ke print hari dalam seminggu (%A ), bulan (%B ), tanggal numerik saat ini (%d ), dan tahun (%Y ) dengan fungsi berikut:

  • strftime fungsi memformat tanggal dan waktu.
  • Fungsi systime mengembalikan waktu sistem saat ini dalam hitungan detik sejak Epoch.
gawk 'BEGIN { print strftime("Today is %A, %B %d, %Y.", systime()) }'

Perhatikan bagaimana awk memungkinkan Anda memformat output dengan cara yang dapat dibaca manusia.

4. Terakhir, jalankan perintah di bawah ini untuk menghitung dan mencetak tanggal sebulan yang lalu. Perintah di bawah ini menggunakan perintah tanggal dengan angka negatif (-1) untuk mendapatkan hari pertama bulan sebelumnya.

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

Mengonversi Format Tanggal dalam File

Mungkin Anda memiliki file yang berisi tanggal dalam format yang tidak kompatibel dengan lokal Anda saat ini. Atau tanggal dalam file tidak cukup jelas untuk dibaca oleh manusia. Jika demikian, pertimbangkan untuk menggunakan alat GNU Awk CLI.

Buat file dengan editor teks pilihan Anda dan masukkan baris berikut ke file yang format tanggalnya tidak jelas. Berikan nama file yang Anda suka, tetapi file CSV-nya disebut test.csv dalam contoh ini.

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

Sekarang, jalankan perintah awk di bawah ini untuk mengekstrak dan mengonversi format tanggal ke format YY-MM-DD yang lebih mudah dibaca manusia. Opsi -F menyetel pemisah bidang sebagai koma atau tanda hubung, dan perintah mencetak (printf) tanggal dalam format yang Anda inginkan.

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

Seperti yang Anda lihat di bawah, format tanggal sekarang jauh lebih jelas.

Anda telah melihat bahwa awk adalah alat yang ampuh yang dapat melakukan berbagai tugas, seperti membandingkan tanggal, menambahkan bidang tanggal ke file, menyortir tanggal, dll. Tapi itu di luar cakupan artikel ini.

Memeriksa Zona Waktu Menggunakan grep Perintah

Memeriksa zona waktu saat ini seharusnya tidak menjadi pajak yang rumit, dan perintah grep memastikan pernyataan ini tetap benar. Perintah grep adalah alat pemrosesan teks canggih lainnya yang dapat Anda gunakan untuk berbagai tugas.

Beberapa tugas yang didukung oleh perintah grep adalah mengekstrak data dari file log dan memanipulasi serta menganalisis data teks. Dengan fitur ini, Anda juga dapat memeriksa zona waktu Anda saat ini dengan perintah grep.

Jalankan perintah timedatectl berikut sendiri untuk mencetak tanggal, waktu, zona waktu, dan status layanan NTP saat ini di mesin Anda.

timedatectl

Seperti yang Anda lihat di bawah, output menunjukkan beberapa informasi tentang tanggal, waktu, dan zona waktu saat ini. Informasi ini memungkinkan Anda memverifikasi bahwa zona waktu yang benar telah disetel pada mesin Anda, yang juga membantu memastikan Anda tidak memiliki masalah dengan sinkronisasi waktu di jaringan Anda.

Mungkin Anda ingin memeriksa daftar zona waktu sebelum menjelajahi lebih lanjut tentang perintah grep. Jika demikian, jalankan perintah berikut:timedatectl list-timezones

Sekarang, jalankan perintah di bawah yang disalurkan ke perintah grep jika Anda berencana untuk memeriksa zona waktu mesin Anda saat ini untuk melakukan hal berikut:

  • Ambil informasi tanggal, waktu, dan zona waktu dari file kernel Linux (timedatectl ).
  • Telusuri dan cetak baris teks yang cocok dengan Time zone pola teks.
timedatectl | grep “Time zone”

Seperti yang Anda lihat di bawah, output hanya menunjukkan zona waktu saat ini yang disetel pada mesin Anda.

Kesimpulan

Tutorial ini memandu Anda melalui banyak contoh praktis untuk menanyakan tanggal, waktu, dan zona waktu Linux. Anda telah belajar memanipulasi format tanggal dan waktu, menghitung tanggal masa lalu dan masa depan dengan date memerintah. Anda juga menjalankan timedatectl dan grep perintah untuk memeriksa zona waktu sistem Anda.

Sekarang, mengapa tidak menulis lebih banyak skrip untuk mengotomatiskan tugas seperti menghitung tanggal yang lalu dan yang akan datang atau mengonversi format tanggal? Atau mungkin membuat tugas cron untuk menjadwalkan eksekusi skrip Anda?


Linux
  1. Manajemen paket Linux dengan apt

  2. tanggal Contoh Perintah di Linux

  3. Analog runasdate Linux

  1. 8 perintah Linux untuk manajemen proses yang efektif

  2. Tutorial Kali Linux Burp Suite

  3. Cara Memeriksa Zona Waktu di Linux

  1. 8 Contoh Perintah Tanggal Cepat di Linux

  2. Tutorial Perintah Tanggal Linux untuk Pemula (8 Contoh)

  3. Linux – Mendapatkan File Untuk Tanggal Saat Ini Di Linux?