Cara Menggunakan Perintah Tanggal Di Bash Scripting Di Linux

Ketika saya mulai menulis skrip bash, saya menyadari bahwa satu operasi yang sering saya tangani pada setiap skrip adalah menangani tanggal dan waktu. Saya telah melakukan banyak operasi seperti menamai file/direktori dengan tanggal, mengambil hasil API, dan mengubah nilai epoch menjadi tanggal/waktu yang sesuai untuk aplikasi, memanipulasi kolom tanggal dalam file CSV, dll. Jika Anda seorang pemula untuk skrip Bash, artikel ini akan membantu dalam memahami cara menggunakan perintah tanggal dalam skrip Bash, cara bekerja dengan tanggal dan waktu menggunakan perintah tanggal dalam skrip shell, cara memanipulasinya dan melakukan berbagai operasi dengannya di Linux.

Anda harus memiliki pemahaman dasar tentang bagaimana tanggal dan waktu sistem diatur. Bagian ini sebagian besar akan diurus oleh admin server dalam pekerjaan Anda.

Tetapi jika Anda adalah pengguna individu dan menggunakan Linux di mesin pribadi Anda, maka Anda harus memiliki pemahaman tentang bagaimana tanggal dan waktu diatur, cara untuk menyinkronkannya, dan bagaimana memodifikasinya.

Ada dua jam yang digunakan oleh Linux untuk menyimpan time sync.
Real-Time Clock – Ini adalah jam yang terintegrasi ke dalam motherboard sistem Anda dan akan berjalan bahkan jika Anda mematikan mesin. System Clock – Ini akan ditangani oleh kernel Linux dan selama sistem boot kernel akan mendapatkan waktu awal dari jam real-time.
Saya tidak akan melalui proses pengaturan tanggal dan waktu, itu topik terpisah untuk dibahas. Mari kita mulai melihat ke bagian inti artikel ini tentang cara menggunakan perintah tanggal dalam skrip Bash di Linux.
Contents
Mendapatkan BantuanMencetak Tanggal Saat Ini Dan Konversi TimeZoneWaktu Modifikasi Terakhir Dari Sebuah FileOpsi Pemformatan BerbedaJalankan Skrip Hanya Pada Hari-Hari TertentuMenyimpan Output Ke VariabelMenggunakan -d atau – -date FlagEpoch TimeConclusionMendapatkan Bantuan

Pertama, Anda dapat memeriksa lokasi biner dari perintah date dengan menjalankan perintah berikut.

$ which date /usr/bin/date

Perintah tanggal bukan bawaan shell tetapi program eksternal. Anda dapat memperoleh informasi itu dengan menjalankan perintah ketik.

$ ketik -a tanggal tanggal adalah /usr/bin/tanggal tanggal adalah /bin/date

Ada banyak opsi untuk dikerjakan dan mengingat semuanya tidak mungkin dan di sinilah bantuan dan halaman manual akan berguna.

Jalankan perintah berikut untuk mengakses halaman manual perintah tanggal.

$ man date

Jalankan perintah berikut untuk mengakses pesan bantuan.

$ date --help

Print Tanggal Dan Waktu Saat Ini

Luncurkan terminal Anda dan jalankan tanggalnya memerintah. Anda akan mendapatkan tanggal saat ini bersama dengan waktu dan zona waktu. Dalam kasus saya, saya telah menetapkan zona waktu sebagai IST selama instalasi OS saya.

$ tanggal Minggu 13 Februari 2022 11:27:17 IST

Anda juga bisa mendapatkan tanggal dan waktu di zona waktu UTC dengan menggunakan flag -u.

$ date -u Minggu 13 Februari 2022 05:57:36 AM UTC

TimeZone Conversion

Anda bisa mendapatkan output dari perintah tanggal di zona waktu yang berbeda dengan menyetel variabel lingkungan TZ. Saya telah mengatur TZ ke zona waktu Moskow dan Singapura pada contoh di bawah ini.

$ Z="Europe/Moscow" dateSunday 13 February 2022 08:59:03 AM MSK
$ TZ="Asia/Singapore" dateSunday 13 February 2022 01: 59:37 PM +08

Anda bisa mendapatkan daftar zona waktu dengan menjalankan perintah “timedatectl”.

$ timedatectl list-timezones
$ timedatectl list-timezones | grep -i singaporeAsia/SingaporeSingapore
$ timedatectl daftar-zona waktu | grep -i moscowEurope/Moscow

Waktu Modifikasi Terakhir File

Biasanya, kita menggunakan perintah stat untuk memeriksa waktu modifikasi file. Hal yang sama dapat diperiksa dengan perintah tanggal menggunakan -r flag.

$ stat ~/.bashrc File: /home/karthick/.bashrc Ukuran: 4342 Blok: 16 IO Blok: 4096 file biasa Perangkat: 806h/2054d Inode: 27787278 Tautan: 1 Akses: (0644/-rw-r--r--) Uid: ( 1000/karthick) Gid: ( 1000/karthick) Akses: 2022-02-13 09:06:45.713721080 +0530 Modifikasi: 2022 -02-11 20:18:52.485178931 +0530 Perubahan: 2022-02-11 20:18:52.485178931 +0530 Lahir: -
$ date -r ~/.bashrc Jumat 11 Februari 2022 08:18:52 PM IST

Bisa dilihat format keluaran perintah stat berbeda dari perintah tanggal, tetapi keduanya memiliki tujuan yang sama.
Opsi Pemformatan Berbeda

Perintah tanggal mendukung opsi pemformatan dan menggunakan opsi ini Anda dapat memformat keluaran perintah tanggal dalam format apa pun yang Anda inginkan atau Anda hanya dapat mengambilnya nilai tertentu dari output.

Buka halaman manual perintah tanggal dan cari bagian seperti yang ditunjukkan pada gambar di bawah ini.

Ada banyak opsi pemformatan, tetapi tidak semua akan berguna. Kita akan melihat beberapa opsi pemformatan penting dan memahami cara kerjanya.

Secara default, perintah tanggal akan menampilkan tanggal dan waktu. Bagaimana jika Anda hanya ingin mencetak tanggal atau waktu?

$ dateMinggu 13 Februari 2022 11:27:17 IST

Untuk mendapatkan tanggal saja, Anda dapat menggunakan flag %F atau flag %D.

$ date +%F2021-11 -16
$ date +%D02/13/22

Ketika Anda menggunakan flag formatter, Anda harus mengawalinya dengan simbol + seperti yang saya lakukan pada contoh di atas.
Output dari flag %F akan dalam format YYYY-MM-DD. keluaran dari flag %D akan berada dalam format MM/DD/YY.
Anda dapat mengambil hari, bulan, dan tahun secara individual dan membuat keluaran berformat baru Anda sendiri.

$ date +%Y2022
$ date +%m02
$ date +% d13

Untuk membuat output berformat Anda sendiri, cukup gabungkan semua flag yang ditunjukkan di bawah ini.

$ date +%Y_%m_%d2022_02_13

Serupa dengan tanggal, Anda juga bisa mendapatkan waktu sendiri menggunakan %r(format 12 jam) atau %T(24 jam format) flags.

$ tanggal +%r # format 12 jam11:24:12 PM IST
$ tanggal +%T # format 24 jam23:24:11

Anda dapat mengambil jam, menit, detik individu ly dan buat keluaran Anda sendiri.

$ date +%H12
$ date +%M24
$ date +%S03

Gabungkan semua tanda di atas dan buat keluaran khusus.

$ date +%H_%M_%S12_26_53

Sekarang di mana bantuan melakukan opsi pemformatan khusus ini ? Bagi saya, ketika saya membuat file apa pun sebagai bagian dari skrip, saya akan menamainya dengan tanggal hari ini. Jadi akan berguna bagi saya untuk melihatnya saat dibutuhkan.

Sampai sekarang kita telah melihat bagaimana bekerja dengan tanggal dan waktu secara individual. Terkadang, Anda mungkin ingin menampilkan tanggal dan waktu. Dalam hal ini, Anda dapat menggabungkan tanggal dan waktu seperti di bawah ini atau membuat output berformat Anda sendiri.

$ date "+%F %r"2021-11-16 11:29:06 PM IST

Run Script Only On Tertentu Days

Dalam beberapa kasus, Anda mungkin ingin menjalankan skrip Anda hanya pada hari tertentu dalam seminggu. Misalnya, jika saya ingin skrip saya hanya berjalan pada hari Jumat, maka saya dapat menggunakan flag %A(Jumat) atau %a(Jumat) dan menulis logika yang sesuai.

if [[ $(date +%A) = Friday ]] lalu echo "Menjalankan kode" else echo "Hari ini bukan hari Jumat, Keluar dari skrip" fi OUTPUT: Hari ini bukan Jumat, Keluar dari skrip

Ada lebih banyak opsi pemformatan yang tersedia. Lihat halaman manual dan jelajahi semuanya.
Menyimpan Output Ke Variabel

Saat menulis skrip, praktik terbaik adalah menyimpan output dari perintah tanggal ke variabel dan menggunakan variabel dalam skrip. Salah satu skenario tersebut akan membuat nama file dengan tanggal dan waktu.

Lihat contoh di bawah ini di mana tanggal hari ini akan disimpan dalam variabel TDY dan hal yang sama digunakan untuk membuat nama file “disk_usage_${TDY}.txt” yang akan menyimpan output dari perintah “df -h”.

$ TDY=$(date +%F)
$ df -h > ~/disk_usage_${TDY}.txt
$ ls -l *.txt -rw- rw-r-- 1 karthick karthick 474 Feb 13 23:40 disk_usage_2022-02-13.txt
$ cat disk_usage_2022-02-13.txt Ukuran Sistem File Digunakan Tersedia Penggunaan% Dipasang di tmpfs 1.6G 154M 1.5G 10% /run /dev /sda7 93G 27G 61G 31% / tmpfs 7.8G 82M 7.7G 2% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup /dev/sda9 261G 130G 118G 53% /nextdrive /dev/sda6 348G 110G 221G 34% /home /dev/sda5 2.0G 234M 1.8G 12% /boot/efi tmpfs 1.6G 180K 1.6G 1% /run/user/1000

Menggunakan -d atau –tanggal Bendera

Th adalah fitur penting yang paling saya sukai dengan perintah tanggal. Anda dapat meneruskan string sebagai argumen ke flag -d atau –date dan Anda akan mendapatkan output dalam format default.

Lihat contoh di bawah ini. Saya telah meneruskan argumen string sebagai “hari ini”, “kemarin”, “besok”, “Kamis lalu”, “Hari ini (+,-) 20 tahun” ke bendera –date. Perintah date akan menginterpretasikan string ini dan mengonversi output ke format default.

$ date --date "Today"Sunday 13 February 2022 01:01:26 PM IST
$ date --date "now"Sunday 13 February 2022 01:01 :34 PM IST
$ tanggal --tanggal "kemarin"Sabtu 12 Februari 2022 01:01:39 PM IST
$ tanggal --tanggal "Besok"Senin 14 Februari 2022 01:01:45 PM IST
$ tanggal --tanggal "Kamis lalu "Kamis 10 Februari 2022 12:00:00 AM IST
$ tanggal --tanggal "Hari ini - 20 tahun"Rabu 13 Februari 2002 01:01:56 PM IST
$ tanggal --tanggal "Hari ini + 20 tahun"Kamis 13 Februari 2042 01 :02:01 PM IST

Anda dapat melewatkan lebih banyak argumen string relatif selain dari yang saya tunjukkan dalam contoh di atas.
Epoch Time

Epoch time dapat dikonversi ke format tanggal dan waktu saat ini menggunakan flag -d atau –date. Output flag %s akan dalam format epoch.

$ date +%s1644737777

Untuk mengubahnya menjadi format standar yang dapat dibaca manusia, tambahkan @ diikuti dengan waktu epoch seperti di bawah ini.

$ date --date @1644737777Minggu 13 Februari 2022 01:06:17 PM IST

Dalam semua contoh di atas, Anda dapat melihat output default ditampilkan. Anda dapat menggabungkan pemformat bersama dengan -d atau –date flag untuk mendapatkan keluaran khusus.

$ date --date "Hari ini + 20 tahun" +%Y2042
$ date --date "Hari ini + 21 tahun" +%s2275890194
$ date --date @2275890194 +%Y2042

Conclusion

Dalam artikel ini, kita membahas cara menggunakan perintah tanggal dalam skrip Bash dengan contoh. Pada saat ini, Anda seharusnya sudah nyaman menggunakan perintah tanggal di skrip Anda. Ada banyak opsi pemformatan yang tersedia, uji dan kenali mereka.

Jika Anda memiliki umpan balik atau saran tentang artikel ini, beri tahu kami melalui bagian komentar di bawah. Panduan skrip

Bash:
Cara Men-debug Skrip Bash Di Linux Dan Skrip UnixBash – Mengurai Argumen Dalam Skrip Bash Menggunakan getoptsCara Membuat Kotak Dialog GUI Di Bash Script Dengan Zenity Di Linux Dan UnixBash Scripting – Case StatementBash Scripting – Conditional StatementsBash Scripting – String ManipulationBash Scripting – Perintah Printf Dijelaskan Dengan ContohBash Scripting – Array Terindeks Dijelaskan Dengan ContohBash Scripting – Array Asosiatif Dijelaskan Dengan ContohBash Scripting – Untuk Penjelasan Loop Dengan ContohBash Script Dan Sampai Loop Dijelaskan Dengan ExampleBash Redirection Dijelaskan Dengan ExampleBash Scripting – Variabel yang Dijelaskan Dengan ExampleBash Scripting – Fungsi Dijelaskan Dengan ExampleBash Perintah Echo Dijelaskan Dengan Contoh Di LinuxBash Tutorial Heredoc Untuk Pemula