5 Linux Time Utilities ที่คุณควรรู้จักไว้

26-ม.ค.-24

คัมภีร์เทพ IT

หากคุณเคยพบ Bug ที่เกี่ยวกับ Latency หรือต้องรับมือกับความแตกต่างของ Time Zone  คุณคงจะได้รู้แล้วว่า การจัดการ “เวลา” นั้นน่าหงุดหงิดแค่ไหน ซึ่งในบทความนี้ เราจะมารู้จักกับ 5 Linux Time Utilities ที่คุณควรรู้จักไว้ ซึ่งเป็น Time และ Date Utilities ที่ Linux มีให้อยู่แล้ว ซึ่งหากคุณรู้จักพวกมันแล้ว จะช่วยให้คุณทำงานสะดวกขึ้น

1. time

Running time in a loop with sleep.

Utility แรกและชัดเจนที่สุดคือ time แม้จะดูเหมือนว่ามันจะทำให้คุณเข้าถึง System Time ปัจจุบัน แต่ที่จริงมันมากกว่านั้น เพราะที่จริงมันเป็น Utility ที่ตรวจวัดเวลาที่ใช้ในการดำเนินการกับคำสั่ง คุณสามารถใส่คำสั่งของคุณไว้ใน time Command และมันจะบอกสถิติว่ามันทำงานเร็วหรือช้าแค่ไหน:

เพียงแค่ใส่ time ไว้ข้างหน้าคำสั่งใด ๆ จากนั้นคำสั่งจะแจ้ง User, System และ Total Time ให้คุณทราบ โดย User Time คือระยะเวลาที่ใช้ในการ Run คำสั่งของคุณ, System Time คือเวลาที่ใช้สำหรับ System Overhead และ Total Time คือ ทั้งสองอย่างรวมกัน

หากคุณต้องการส่ง Arguments ไปยัง time Command คุณจะต้อง Run โดยใช้ Full Path หรือด้วย Command Utility ด้วยวิธีนี้จะทำให้ Arguments ของคุณที่ส่งไปยัง time จะถูกตีความว่าเป็น Arguments ไม่ใช่คำสั่งที่จะวิเคราะห์

ด้านล่างนี้คือตัวอย่างการส่ง Arguments ไปยัง time:

Command Utility จะบอก Shell ให้ประเมินคำที่ตามมาเป็นคำสั่ง ไม่ใช่ Reserved Word การส่งผ่าน -p Flag จะสร้าง Output Format ที่เป็น “Portable” ซึ่งจะกระจายไปที่ 3 บรรทัดแทนที่จะเป็นหนึ่งบรรทัด

2. date

Using date to get the current Unix time.

Utility นี้ไม่เพียงแต่จัดการ “วันที่” เท่านั้น แต่มันยังสามารถจัดการ System Time ปัจจุบันได้อีกด้วย หากคุณไปที่ time เพื่อมองหา Actual Time คุณจะพบว่ามันอยู่ที่นี่แทน ซึ่ง date Utility จะสามารถดึงหรือตั้งค่า System Date และ Time ได้ คุณยังสามารถใช้มันเพื่อสร้างรูปแบบต่าง ๆ ของ Date และ Time ได้อีกด้วย

หนึ่งในการใช้งานที่พบบ่อยที่สุดสำหรับ date คือการดึง timestamp ปัจจุบันในระบบ Unix:

.

สิ่งนี้จะสร้าง Unix Time ในหน่วยวินาที ซึ่งมันมีประโยชน์ใน Script หรือสำหรับการสร้างไฟล์ที่มี timestamp ที่ไม่ซ้ำกัน

ความสามารถที่แท้จริงของ date Utility จะยิ่งชัดเจนขึ้นเมื่อพูดถึงเรื่องการจัด Format คุณสามารถสร้าง Date และ Time String ใดก็ได้ที่คุณต้องการ ซึ่งนี่เป็นเพียงส่วนที่เล็กน้อยของ Formatting Parameters ที่มีอยู่:

ตัวอย่างเช่น ถ้าเราต้องการสร้าง Date String ที่ระบุว่าเป็นวันที่เท่าไรของปี, วันที่เท่าไรของเดือน และเวลาปัจจุบัน:

สิ่งนี้อาจดูเหมือนไม่มีประโยชน์ดูจากค่าที่เห็น แต่หากคุณต้องการสร้าง Strict Format Parameters สำหรับบางอย่าง เช่น Database Query เชื่อว่า date Utility จะเป็นเพื่อนที่ดีที่สุดของคุณ

3. zdump

Using zdump to get the date in LA and NYC.

การจัดการกับหลาย ๆ Time Zones อาจเป็นเรื่องที่ยากลำบาก เนื่องจากมี Zones ที่หลากหลายมาก และการแปลงระหว่าง Zones เหล่านั้นก็เป็นเรื่องที่ไม่ง่ายเลย แล้วทำไมคุณไม่ปล่อยให้ Software ช่วยทำให้ล่ะ?

ด้วย zdump Utility คุณสามารถแสดงวันที่และเวลาปัจจุบันใน Zone ที่คุณต้องการได้ คุณยังสามารถส่งหลาย ๆ Zones มาเพื่อให้ได้ภาพรวมที่สมบูรณ์เกี่ยวกับการเปลี่ยนแปลงของเวลาในหลายภูมิภาค:

คุณเพียงระบุชื่อ Zone ที่คุณต้องการดูเท่านั้น ซึ่งพวกมันจะอยู่ในรูปแบบการตั้งชื่อ Time Zone มาตรฐานของ IANA หากคุณต้องการรับรายการของ Time Zones ทั้งหมดที่ System ของคุณรู้จัก คุณสามารถ Run:

ซึ่งมันจะสร้างรายการของ Time Zones เป็นจำนวนมากที่คุณสามารถนำไปใช้กับ zdump และ Time Zone Applications อื่น ๆ ได้โดยตรง

4. timedatectl

Displaying the timedatectl status on Debian.

timedatectl Utility เป็นโปรแกรมที่อธิบายตัวเองได้เองอย่างชัดเจน ใน Distros ส่วนใหญ่ มันจะช่วยให้คุณควบคุมนาฬิกาและ Sync Mechanisms ของ System ได้ ซึ่งอาจเป็น Local RTC, NTP และ Sources อื่น ๆ นอกจากนี้ มันยังแสดงข้อมูลสถานะพื้นฐานเกี่ยวกับ Time Zone ปัจจุบันและ Clock Sync ที่ทำงานอยู่:

หากคุณเคยพบความแตกต่างระหว่างนาฬิกาของ Remote Host กับนาฬิกาของคุณเอง นี่จะเป็นจุดเริ่มต้นที่ดีในการเริ่มตรวจสอบ

Utility นี้จะให้ข้อมูลโดยละเอียดอย่างยิ่งเกี่ยวกับ NTP Sync State:

หากคุณไม่ได้ตั้งค่า NTP อย่างถูกต้องหรือการ Sync ของคุณมีความคลาดเคลื่อนอย่างมาก มันควรแสดงผลไว้ที่นี่

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้ timedatectl โปรดดูที่ Local Man Page หรือ Live Version ได้ที่นี่

5. cal

Displaying three months with cal.

นี่เป็น Calendar Program ขนาดเล็กที่น่าสนุกซึ่งจะแสดงภาพกราฟิกของปฏิทินที่ตรงกับปฏิทินใน Terminal ของคุณ มันมีตัวเลือกมากมายจนน่าประหลาดใจเช่นกัน คุณสามารถกำหนดการจัดรูปแบบวันที่และบอกจำนวนเดือนที่ต้องการจะให้แสดง ตัวอย่างเช่น หากคุณต้องการดูปฏิทินสำหรับ 6 เดือนข้างหน้า คุณสามารถทำได้ดังนี้:

มันควรแสดงปฏิทินใน 6 เดือนถัดไปให้คุณได้เห็น โดย -A Flag จะบอก cal ว่าคุณต้องการดูปฏิทินเพิ่มเติม "หลังจาก" วันที่ปัจจุบันของคุณ คุณยังสามารถระบุจำนวนเดือนก่อนหน้าของวันที่ปัจจุบันได้เช่นกัน โดยใช้ -B Flag

Displaying six months of calendar data with the cal command.

อยากรู้ว่าปฏิทินดูเป็นอย่างไรในปีที่คุณต้องการใช่หรือไม่? ส่งปีที่ต้องการให้มัน แล้วมันจะแสดงให้คุณได้เห็น:

นอกจากนี้ยังมี Flags อื่น ๆ ที่น่าสนใจอีก 2-3 Flags ที่แสดงวันหยุดต่าง ๆ ทางศาสนา เช่น Easter

Displaying the calendar using cal in “ncal” mode for 1984.

คุณยังสามารถเปลี่ยนเป็น ncal Mode โดยใช้ -N Flag โดยมันจะเปลี่ยนเป็นการแสดงผลในแนวตั้ง โดยจัดให้วันในสัปดาห์อยู่ทางด้านซ้าย ซึ่งอาจจะง่ายต่อการกรอง (Filter) และแยก (Split) ถ้าคุณสนใจในการแยกวิเคราะห์ (Parse) ผลลัพธ์ของ cal

ที่มา: https://blog.devops.dev/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด