ฉันต้องการให้อูบุนตูซิงโครไนซ์นาฬิการะบบของฉันกับเซิร์ฟเวอร์เวลาโดยอัตโนมัติเมื่อเริ่มต้น
อย่างไรก็ตามพีซีของฉันไม่ได้เชื่อมต่อกับอินเทอร์เน็ตจนกระทั่งหลังจากฉันเข้าสู่ระบบ (บวก 5 - 10 วินาทีเพื่อการวัดที่ดี)
ฉันจะตั้งให้ทำเช่นนี้ได้อย่างไร
ฉันต้องการให้อูบุนตูซิงโครไนซ์นาฬิการะบบของฉันกับเซิร์ฟเวอร์เวลาโดยอัตโนมัติเมื่อเริ่มต้น
อย่างไรก็ตามพีซีของฉันไม่ได้เชื่อมต่อกับอินเทอร์เน็ตจนกระทั่งหลังจากฉันเข้าสู่ระบบ (บวก 5 - 10 วินาทีเพื่อการวัดที่ดี)
ฉันจะตั้งให้ทำเช่นนี้ได้อย่างไร
คำตอบ:
ทำได้ด้วย NTP ซึ่งมีคำแนะนำให้ใช้ โดยทั่วไปคุณจะต้องติดตั้ง NTP daemon ดูเหมือนจะมีตัวเลือกหลายตัวมี แต่ "มาตรฐาน" ntp
หนึ่งในแพคเกจ ตามคำแนะนำที่หน้าเชื่อมโยง
sudo apt-get install ntp
จะได้รับการตั้งค่าทุกอย่างเพื่อซิงโครไนซ์กับเซิร์ฟเวอร์ NTP ของ Ubuntu
แก้ไข : ฉันพลาด "เมื่อเริ่มต้น" โดยทั่วไปจะแนะนำให้ใช้ ntpd เพื่อรับการซิงโครไนซ์อย่างต่อเนื่องระหว่างระบบของคุณและเซิร์ฟเวอร์ แต่ถ้าคุณต้องการซิงโครไนซ์เพียงครั้งเดียวคำตอบของ mfisch ดูเหมือนจะเป็นสิ่งที่คุณต้องการ
หากคุณไปที่ "ระบบ -> การบริหาร -> เวลาและวันที่" คุณจะได้รับ GUI เพื่อตั้งวันที่ / เวลา
ตัวเลือกที่มีให้สำหรับการใช้เซิร์ฟเวอร์เวลา หากคุณตรวจสอบและไม่ได้ติดตั้ง NTP ระบบจะถามว่าคุณต้องการติดตั้งหรือไม่ เพียงคลิก "ใช่" และปล่อยให้มันทำงาน :)
คุณสามารถทำได้โดยใช้ที่และntpdate at อาจถูกติดตั้งไว้แล้ว แต่ntpdateอาจไม่ใช่ (apt-get install ntpdate)
ขั้นแรกสร้างสคริปต์ขนาดเล็กที่รัน ntpdate ให้เรียกมันว่า update_time.sh
#!/bin/bash
ntpdate pool.ntp.org
ในไฟล์. bash_login ของคุณ (ซึ่งคุณอาจต้องสร้าง) เพิ่มสิ่งนี้:
at -f ~/update_time.sh now + 1 minute
ควรทำสิ่งที่คุณต้องการ คุณสามารถเปลี่ยนการหน่วงเวลาที่ใช้เป็น 5 นาที 10 นาทีเป็นต้น
แก้ไข: ntpdate
ฉันเพิ่งรู้ว่าคุณจะต้องรากวิ่ง คุณจะต้องตั้งค่าบิต SUID บนสคริปต์ update_time.sh ที่ฉันพูดถึง คุณสามารถทำได้โดยการเรียกใช้จากคำสั่ง (จำเป็นต้องเรียกใช้เพียงครั้งเดียว):
sudo chmod 4711 update_time.sh
sudo chown root update_time.sh
at
? และถ้าคุณจะทำงานโดยอัตโนมัติntpdate
ทำไมไม่เพียงติดตั้งntp
บริการ
ตั้งแต่ Ubuntu 16.04 timedatectl / timesyncd (ซึ่งเป็นส่วนหนึ่งของ systemd) แทนที่ ntpdate / ntp ส่วนใหญ่ ดูเวลาการประสานข้อมูล
คุณอาจต้องเปิดใช้งานการซิงโครไนซ์เวลาโดยใช้:
$ sudo timedatectl set-ntp on
หากคุณต้องการใช้ chrony:
หากคุณต้องการใช้การซิงค์แบบครั้งเดียว: $ chronyd -q
หากคุณต้องการการตรวจสอบครั้งเดียวโดยไม่ต้องตั้งค่าการใช้เวลา: $ chronyd -Q
สำหรับการซิงค์อย่างต่อเนื่องโซลูชันที่แนะนำคือ chrony:
chrony (ง)
NTP daemon chronyd คำนวณค่าดริฟท์และออฟเซ็ตของนาฬิการะบบของคุณและปรับอย่างต่อเนื่องดังนั้นจึงไม่มีการแก้ไขขนาดใหญ่ที่อาจนำไปสู่การบันทึกที่ไม่สอดคล้องกันเช่น ค่าใช้จ่ายนั้นใช้พลังงานในการประมวลผลและหน่วยความจำเพียงเล็กน้อย แต่สำหรับเซิร์ฟเวอร์ที่ทันสมัย การติดตั้ง
หากต้องการติดตั้ง chrony จากพรอมต์เทอร์มินัลให้ป้อน:
$ sudo apt install chrony
คุณอาจต้องเปิดใช้งาน
sudo timedatectl set-ntp on
ปรับปรุง:วิธีอื่นถ้าข้างต้นไม่ทำงานคือการตั้งค่างาน cron ให้ทำงาน$ chronyd -q