ฉันใช้งาน Ubuntu บนระบบฝังตัว ARM ที่ใช้แบตเตอรี่สำรอง RTC เวลาปลุกอยู่ในช่วงปี 1970 ดังนั้นฉันจึงใช้บริการ NTP เพื่ออัปเดตเวลาเป็นเวลาปัจจุบัน
ฉันเพิ่มบรรทัดต่อไปนี้ไปยัง/etc/rc.local
ไฟล์:
sudo ntpdate -s time.nist.gov
อย่างไรก็ตามหลังจากที่เริ่มต้นก็ยังคงใช้เวลาไม่กี่นาทีจนกว่าจะถึงเวลาที่มีการปรับปรุงในช่วงระยะเวลาที่ฉันไม่สามารถทำงานได้อย่างมีประสิทธิภาพด้วยและtar
make
ฉันจะบังคับให้มีการอัปเดตนาฬิกาตามเวลาที่กำหนดได้อย่างไร
ปรับปรุง 1:ต่อไปนี้ (ขอบคุณ Eric และ Stephan) ทำงานได้ดีจากบรรทัดคำสั่ง แต่ไม่สามารถอัปเดตนาฬิกาได้เมื่อใส่/etc/rc.local
:
$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; date
Thu Jan 1 00:00:58 UTC 1970
* Stopping NTP server ntpd [ OK ]
* Starting NTP server [ OK ]
Thu Feb 14 18:52:21 UTC 2013
ผมทำอะไรผิดหรือเปล่า?
อัปเดต 2:ฉันลองทำตามคำแนะนำเล็กน้อยที่ตอบสนองต่อการอัปเดตครั้งที่ 1 แต่ดูเหมือนว่าจะไม่มีงานใดที่จะทำได้ตามที่ต้องการ นี่คือสิ่งที่ฉันพยายาม:
- แทนที่เซิร์ฟเวอร์เป็น
us.pool.ntp.org
- ใช้เส้นทางที่ชัดเจนไปยังโปรแกรม
- นำ
ntp
บริการทั้งหมดและปล่อยให้เป็นเพียงแค่sudo ntpdate ...
ในrc.local
- ลบ
sudo
คำสั่งจากด้านบนในrc.local
ใช้ด้านบนเครื่องยังคงเริ่มต้นที่ 1970 แต่เมื่อทำเช่นนี้จากบรรทัดคำสั่งเข้าสู่ระบบครั้งใน (ผ่านssh
), ntpdate
นาฬิกาได้รับการปรับปรุงให้เร็วที่สุดเท่าที่ฉันเรียก
สิ่งสุดท้ายที่ฉันทำคือลบสิ่งนั้นจากrc.local
และโทรออกไปยังไฟล์ntpdate
ของฉัน .bashrc
นี่เป็นการปรับปรุงนาฬิกาตามที่คาดไว้และฉันได้รับเวลาปัจจุบันจริงเมื่อพรอมต์คำสั่งพร้อมใช้งาน
อย่างไรก็ตามนี่หมายความว่าหากเปิดเครื่องและไม่มีผู้ใช้ที่ล็อกอินดังนั้นเวลาจะไม่ได้รับการอัพเดต แน่นอนว่าฉันสามารถติดตั้งntp
บริการใหม่ได้ดังนั้นอย่างน้อยนาฬิกาจะอัปเดตภายในไม่กี่นาทีหลังจากเริ่มต้น แต่หลังจากนั้นเรากลับมาที่จตุรัส 1
ดังนั้นมีเหตุผลที่การวางntpdate
คำสั่งในrc.local
ไม่ทำงานที่จำเป็นในขณะที่.bashrc
ทำงานได้ดี?
sudo
ในไฟล์ /etc/rc.locale พวกเขาทั้งหมดจะถูกเรียกใช้เป็นรูท
timedatectl
แต่askubuntu.com/questions/832646/…
ntpdate -s ntp.ubuntu.com
[1]: askubuntu.com/a/81301/130162