วิธีใช้คำสั่ง timedatectl บน Linux
เผยแพร่แล้ว: 2022-06-16 คำสั่ง Linux timedatectl
ให้คุณตั้งเวลา วันที่ และเขตเวลาสำหรับนาฬิการะบบและนาฬิกาแบบเรียลไทม์ของคุณ สละเวลาสักครู่ แล้วเราจะแสดงวิธีการทำงานทั้งหมดให้คุณดู
มันเป็นญาติกันทั้งหมด
การดูแลเวลาของคอมพิวเตอร์ของคุณเป็นหนึ่งในสิ่งที่คุณอาจคาดหวังได้ค่อนข้างตรงไปตรงมา อย่างน้อยก็จนกว่าคุณจะเริ่มมองเข้าไปข้างใน
นาฬิการะบบ Linux นับจำนวนวินาทีนับตั้งแต่ยุค Unix นี่คือเวลา 00:00:00 น. วันที่ 1 ม.ค. 2513 UTC UTC ย่อมาจาก Universal Time Coordinated แต่มักเรียกว่าเวลาสากลเชิงพิกัดหรือเวลาสากล นี่คือมาตรฐานเวลาที่โลกใช้จัดการและควบคุมเวลา เขตเวลาต่างๆ จะใช้การชดเชย UTC เพื่อให้ได้เวลาท้องถิ่น เขตเวลาบางเขตอยู่ข้างหน้า UTC และบางเขตอยู่ข้างหลัง
นาฬิการะบบในคอมพิวเตอร์ Linux เป็นแบบซอฟต์แวร์ แน่นอนว่ามันไม่สามารถทำงานได้เมื่อปิดเครื่องคอมพิวเตอร์ นาฬิกาอีกตัวหนึ่ง ซึ่งเป็นนาฬิกาตามเวลาจริงที่ใช้ฮาร์ดแวร์สำรองแบตเตอรี่ สามารถทำงานได้เมื่อปิดเครื่องคอมพิวเตอร์ จุดประสงค์คือเพื่อบอกนาฬิการะบบว่าเวลาใดที่ Linux บูทขึ้น เว้นแต่จะสามารถเข้าถึงเซิร์ฟเวอร์โปรโตคอลเวลาเครือข่าย (NTP) ได้
เซิร์ฟเวอร์ NTP คือเซิร์ฟเวอร์ที่ให้ข้อมูลเวลาที่ถูกต้องแก่คอมพิวเตอร์ที่ร้องขอ หากคุณเปิดเครื่องคอมพิวเตอร์หรือแล็ปท็อปและไม่มีการเข้าถึงอินเทอร์เน็ต หรือไม่ได้กำหนดค่าให้ใช้เซิร์ฟเวอร์ NTP นาฬิกาตามเวลาจริงจะถูกนำมาใช้เพื่อทำให้นาฬิกาของระบบเป็นไพรม์แทนเซิร์ฟเวอร์ NTP
นาฬิกาของระบบอยู่ใน UTC เสมอ แอปพลิเคชันใด ๆ ที่จำเป็นต้องได้รับเวลาท้องถิ่นต้อง:
- เข้าถึงนาฬิการะบบและรับ UTC
- รู้ว่ามันอยู่ในเขตเวลาใดและใช้ออฟเซ็ตที่ถูกต้อง
- พิจารณาว่าเวลาออมแสงมีผลหรือไม่
แอปพลิเคชันทำการแปลงจาก UTC เป็นเวลาท้องถิ่น ไม่ใช่นาฬิกาของระบบ หรืออย่างแม่นยำยิ่งขึ้น การแปลงจะดำเนินการโดยไลบรารีเวลาและวันที่ที่แอปพลิเคชันเชื่อมโยงอยู่ นั่นเป็นสาเหตุสำคัญที่คอมพิวเตอร์ของคุณต้องรู้ว่ามันคือเขตเวลาใด เวลา UTC คืออะไร กี่วินาทีที่ผ่านไปตั้งแต่ยุค Unix และเวลาออมแสงมีผลบังคับหรือไม่
ในการแจกแจง Linux บน systemd เราใช้คำสั่ง timedatectl
เพื่อดูหรือเปลี่ยนการตั้งค่าและค่าเหล่านั้น
เริ่มต้นใช้งาน timedatectl
หากต้องการดูข้อมูลปัจจุบันและเวลาและค่าอื่นๆ ให้ใช้คำสั่ง timedatectl
พร้อมตัวดำเนินการ status
สถานะ timedatectl
ที่จริงแล้ว คุณสามารถยกเลิกสถานะได้ และคุณยังได้ผลลัพธ์เหมือนเดิม
timedatectl
แสดงเอาต์พุตทั้งสองชุด:
- เวลาท้องถิ่น : เวลาที่คอมพิวเตอร์คิดตามเขตเวลา
- เวลาสากล : เวลา UTC
- RTC Time : เวลาที่นาฬิกาเรียลไทม์กำลังใช้อยู่ โดยปกตินี่คือ UTC
- เขตเวลา : ข้อมูลเกี่ยวกับเขตเวลาที่กำหนด
- System Clock Synchronized : นาฬิการะบบจะซิงโครไนซ์กับเซิร์ฟเวอร์ NTP หรือไม่
- บริการ NTP : บริการ NTP ของคอมพิวเตอร์ทำงานอยู่หรือไม่
- RTC ใน TZ ท้องถิ่น : ระบุว่านาฬิกาแบบเรียลไทม์ใช้เวลาท้องถิ่นแทน UTC หรือไม่
คุณสามารถดูจำนวนโซนเวลาที่คำสั่ง timedatectl
รองรับโดยพิมพ์:
timedatectl list-timezones | wc -l
นั่นเป็นวิธีที่มากกว่าเขตเวลาในโลก หากเราไพพ์เอาต์พุตใน grep
และกรองรายการสำหรับ "อเมริกา" และไพพ์ที่ less
เราสามารถเลื่อนดูรายการที่สามารถจัดการได้มากขึ้น
timedatectl list-timezones | grep "อเมริกา/" | น้อย
ในขณะที่คุณตรวจสอบรายการนั้น คุณจะเห็นว่า “อเมริกา” มีความหมายที่กว้างที่สุดเท่าที่จะเป็นไปได้ สิ่งที่สองที่คุณจะสังเกตเห็นคือรายการส่วนใหญ่ไม่ใช่เขตเวลาจริง
การตั้งค่าเขตเวลา
หากคุณดูรายการโซนเวลาที่ไม่มีการกรองซึ่งรองรับโดย timedatectl
คุณจะเห็นสถานที่และเขตเวลา ในการตั้งค่าเขตเวลา คุณสามารถระบุโดยใช้ชื่อเช่น EST หรือ GMT หรือคุณสามารถเลือกสถานที่ในเขตเวลาเดียวกับคุณ เช่น ลอนดอนหรือนิวยอร์ก
การรีเซ็ตเขตเวลาไม่ใช่สิ่งที่คุณจะทำบ่อย แต่บางทีคุณอาจย้ายบ้านหรือทำงานไปสักพักแล้วและต้องการปรับแล็ปท็อปของคุณให้เป็นภาษาท้องถิ่น หากคุณต้องการรีเซ็ตเขตเวลา ให้เลือกตำแหน่งในเขตเวลาที่คุณต้องการใช้
เราจะตั้งค่าคอมพิวเตอร์เครื่องนี้เป็นเวลาขึ้นเขา ซึ่งเป็นเขตเวลาเดียวกับเอดมันตัน จากนั้นเราจะดูว่าการตั้งค่ามีการเปลี่ยนแปลงอย่างไร
timedatectl set-timezone "อเมริกา/เอดมันตัน"
timedatectl
โซนเวลาของเรามีการเปลี่ยนแปลง เวลาท้องถิ่นของเราเปลี่ยนแปลง และออฟเซ็ตของเราจาก UTC เพิ่มขึ้น
ที่เกี่ยวข้อง: วิธีใช้ท่อบน Linux
ตั้งเวลาและวันที่ด้วยตนเอง
แม้ว่าจะสามารถตั้งเวลาและวันที่ได้ด้วยตนเอง แต่โดยปกติคุณไม่จำเป็นต้องทำ การใช้การซิงโครไนซ์เวลาและ NTP เป็นวิธีที่ต้องการเพื่อให้เวลาและวันที่ของคอมพิวเตอร์ถูกต้อง หากคุณพยายามเปลี่ยนวันที่หรือเวลาของคอมพิวเตอร์ คุณอาจได้รับข้อผิดพลาด โดยแจ้งว่ามีการใช้การซิงโครไนซ์เวลาอยู่
timedatectl ตั้งเวลา 10:30:00
ใช้คำสั่งนี้เพื่อปิดบริการซิงโครไนซ์เวลา:
sudo systemctl หยุด systemd-timesyncd.service
คุณสามารถตั้งเวลา วันที่ หรือทั้งสองอย่างได้โดยใช้ตัวดำเนินการตั้งเวลา timedatectl
วันที่อยู่ในลำดับปี-เดือน-วัน YYY-MM-DD และเวลาเป็นชั่วโมง-นาที-วินาทีตามลำดับ HH:MM:SS เราจะตั้งเวลาและวันที่ด้วยคำสั่งนี้:
timedatectl ตั้งเวลา "2022-01-30 10:30:00"
จากนั้นเราจะตรวจสอบว่าการเปลี่ยนแปลงเกิดขึ้นโดยใช้ timedatectl
timedatectl
วันที่และเวลามีการเปลี่ยนแปลง นอกจากนี้ โปรดทราบว่าคอมพิวเตอร์ใช้เวลา UTC เท็จ เรายังได้รับแจ้งว่านาฬิกาของระบบไม่ได้ซิงโครไนซ์และบริการ NTP ไม่ทำงาน
หากคุณมีอินเทอร์เน็ต ทันทีที่คุณกู้คืนบริการซิงโครไนซ์เวลา ระบบจะดึงเวลาและรายละเอียดทั้งหมดจะถูกรีเซ็ตอย่างถูกต้อง
sudo systemctl start systemd-timesyncd.service
timedatectl
RTC: UTC หรือ LTZ?
เป็นไปได้ที่จะตั้งค่านาฬิกาแบบเรียลไทม์เป็นเวลาในเขตเวลาท้องถิ่นของคุณแทนที่จะเป็น UTC ซึ่งเป็นไปได้ แต่ไม่แนะนำให้เลือก หากคุณทำการเปลี่ยนแปลง คุณจะเห็นคำเตือนเกี่ยวกับผลกระทบที่อาจเกิดกับระบบของคุณในอนาคต
เหตุผลที่แสดงให้คุณเห็นวิธีนี้คือ คุณอาจพบเครื่องที่มีปัญหาแปลก ๆ เกี่ยวกับการตั้งเวลา นี่คือวิธีตั้งค่านาฬิกาตามเวลาจริงกลับเป็น UTC
อันดับแรก เราจะต้องตั้งค่าเป็นเขตเวลาท้องถิ่น
timedatectl set-local-rtc 1
จากนั้นเราจะถาม timedatectl
สำหรับสถานะของมัน
timedatectl
ฉันคิดว่าพวกเขาได้แสดงความรู้สึกที่ชัดเจน
ในการกู้คืนนาฬิกาตามเวลาจริงเป็น UTC ให้ใช้คำสั่งนี้:
timedatectl set-local-rtc 0
ตั้งแล้วลืมมันไป
ยกเว้นกรณีที่คุณทำผิดพลาดระหว่างการติดตั้งลีนุกซ์รุ่นแจกจ่าย หรือคุณย้ายที่ตั้ง โดยปกติแล้วจะไม่มีเหตุผลใดที่จะต้องแก้ไขการตั้งค่าของระบบและนาฬิกาแบบเรียลไทม์
ตั้งค่านาฬิกาของระบบเป็นโซนเวลาของคุณ นาฬิกาแบบเรียลไทม์เป็น UTC และตรวจสอบว่าระบบของคุณกำลังสำรวจเซิร์ฟเวอร์โปรโตคอลเวลาของเครือข่าย นั่นเป็นสถานะเริ่มต้นหลังจากการติดตั้งส่วนใหญ่
หากพร้อมแล้ว ระบบเวลาของคอมพิวเตอร์จะดูแลตนเอง
ที่เกี่ยวข้อง: วิธีซิงค์เวลาเซิร์ฟเวอร์ Linux ของคุณกับเซิร์ฟเวอร์เวลาเครือข่าย (NTP)