Cara Bekerja dengan Tanggal dan Waktu di Bash Menggunakan Perintah tanggal


Perintah tanggal adalah program bash eksternal yang memungkinkan untuk mengatur atau menampilkan tanggal dan waktu sistem. Ini juga menyediakan beberapa opsi pemformatan. Perintah tanggal diinstal di semua distro Linux secara default.

which date
type -a date

Ketik perintah tanggal di terminal yang akan menampilkan tanggal dan waktu saat ini.

date

Ubah Tanggal dan Waktu Sistem Linux

Dengan menggunakan perintah tanggal, tanggal, waktu, dan zona waktu sistem dapat diubah dan perubahan tersebut harus disinkronkan dengan jam perangkat keras.

date --set="Thu Nov 12 13:06:59 IST 2020"
hwclock --systohc

Opsi Pemformatan

Tempat yang baik untuk mendapatkan daftar opsi pemformatan adalah halaman manual.

man date

Mari kita lihat beberapa opsi pemformatan paling umum yang akan kita gunakan.

  • Untuk menerapkan pemformatan, gunakan “+ diikuti dengan “formatter“.
  • Untuk mendapatkan daftar opsi pemformatan untuk GNU\LINUX lihatlah halaman manual tertaut.
  • Untuk mendapatkan daftar opsi pemformatan untuk BSD, lihat halaman manual tertaut.

Dua bagian penting dari perintah tanggal adalah menggunakan opsi Format +% dan –tanggal.

Sekarang mari terapkan beberapa pemformatan pada perintah tanggal. Untuk menerapkan pemformatan, tambahkan tanda tambah (+) diikuti dengan %formatter seperti yang ditunjukkan dalam contoh.

Tanggal Penanganan di Linux

Mari kita lihat cara menggunakan pemformat terkait tanggal dalam skrip shell sederhana yang disebut 'date.sh'.

PRINT YEAR,MONTH,DAY AND DATE...

echo "We are in the year = $(date +%Y)"
echo "We are in the year = $(date +%y)"

Difference between %Y and %y is %Y will print 4 digits while %y will print the last 2 digits of the year.

echo "We are in the month = $(date +%m)"
echo "We are in the month = $(date +%b)"
echo "We are in the month = $(date +%B)"

Difference between %B and %b is, %B will print full month name while %b will print abbreviated month name.

echo "Current Day of the month = $(date +%d)"

echo "Current Day of the week = $(date +%A)"
echo "Current Day of the week = $(date +%a)"

Difference between %A and %a is, %A will print full Weekday name while %a will print abbreviated weekday name.

Instead of formatting to get the date, we can use %D which will print the date as %m/%d/%y or %F which prints in %Y-%M-%d format.

echo "Date using %D = $(date +%D)"
echo "Date using %F = $(date +%F)"

Menangani Waktu di Linux

Mari kita lihat cara menggunakan pemformat yang berhubungan dengan waktu dalam skrip shell sederhana yang disebut 'time.sh'.

PRINT HOURS, MINS, SECONDS, NANO SECONDS

echo Hours = $(date +%H)
echo Minutes = $(date +%M)
echo Seconds = $(date +%S)
echo Nanoseconds = $(date +%N)
echo Epoch Time = $(date +%s)

echo "current time = $(date +%H:%M:%S:%N)"

can also use %T which displays Time in HH:MM:SS format.

echo "current time in 24 hour format = $(date +%T)"

can also use %r to display time in 12 hour format.

echo "current time in 12 hour format = $(date +%r)"

Dengan –tanggal atau -d Bendera

Dengan input flag --date atau -d dapat diteruskan sebagai string dan perintah tanggal tahu cara menanganinya dengan cerdas.

Mari kita lihat beberapa contoh untuk memahami cara kerjanya.

Print yesterday's date and time.
echo "Yesterday = $(date -d "Yesterday")"

Print Tomorrow date and time.
echo "tomorrow = $(date -d "tomorrow")"

Find what is the date and time before 10 days from now.
echo "Before 10 days = $(date -d "tomorrow -10 days")"

Find last month and next month
echo "Last month = $(date -d "last month" "%B")"
echo "Next month = $(date -d "next month" "%B")"

Find last year and next year
echo "Last Year = $(date -d "last year" "+%Y")"
echo "Next Year = $(date -d "next year" "+%Y")"

Forecast the weekday
echo "2 days away from today and it comes on weekdays? = $(date -d "Today +2 days" "+%A")

Operasi Umum

hitung jumlah hari antara 2 tanggal tertentu.

echo $(( ( $(date -d "2020-11-10" "+%s") - $(date -d "2020-11-01" "+%s") ) / 86400))

Temukan tahun tertentu adalah tahun kabisat atau bukan.

for y in {2000..2020}; do date -d $y-02-29 &>/dev/null && echo $y is leap year; done

Menetapkan keluaran perintah tanggal ke variabel.

TODAY=$(date +%Y-%m-%d)
OR
TODAY1=$(date +%F)
echo $TODAY 
echo $TODAY1

Buat file log dengan tanggal ditambahkan ke nama file.

Menambahkan tanggal dan waktu saat membuat file log, cadangan, atau file teks adalah operasi umum yang paling sering kita temui. Mari kita ambil contoh, untuk mengambil cadangan, kita telah membuat skrip shell.

Skrip ini akan mengambil cadangan dari pukul 00:00 hingga 23:59 dan dijadwalkan untuk dijalankan setiap hari pada pukul 00:00 keesokan harinya. Kami ingin membuat file log dengan format tanggal kemarin.

CUSTOM_FORMAT=$(date --date "Yesterday" "+%d-%y-%H:%M")
LOG_FILE=/var/log/custom_application/application_${CUSTOM_FORMAT}.log
echo "Script started" >>  ${LOG_FILE}
...
CODE BLOCKS
...
echo "Script completed" >> ${LOG_FILE}

Itu saja untuk artikel ini. Pada artikel ini, kita telah melihat cara menggunakan tanggal dan waktu bash di Linux. Beri tahu kami tanggapan Anda.