ฉันจะดึงข้อมูลวันที่จากอินเทอร์เน็ตและตั้งนาฬิกาของคอมพิวเตอร์จากบรรทัดคำสั่งได้อย่างไร
switch
ruby ในขณะที่คุณสามารถกำหนดวันที่ได้โดยตรงผ่านทางdate -s
(ดังที่แสดงใน manpage) หรือใช้คำสั่งที่อธิบายไว้ด้านล่าง ...
ฉันจะดึงข้อมูลวันที่จากอินเทอร์เน็ตและตั้งนาฬิกาของคอมพิวเตอร์จากบรรทัดคำสั่งได้อย่างไร
switch
ruby ในขณะที่คุณสามารถกำหนดวันที่ได้โดยตรงผ่านทางdate -s
(ดังที่แสดงใน manpage) หรือใช้คำสั่งที่อธิบายไว้ด้านล่าง ...
คำตอบ:
คุณสามารถใช้ได้ :
sudo dpkg-reconfigure tzdata
สำหรับการกำหนดค่าเขตเวลาของคุณ
สำหรับการอัพเดตเวลาและวันที่จากอินเทอร์เน็ตใช้สิ่งต่อไปนี้:
หากไม่ได้ติดตั้ง ntpd ใช้หนึ่งในคำสั่งต่อไปนี้เพื่อติดตั้ง ntpd:
สำหรับ RPM
yum install ntp
สำหรับ Debian based:
sudo apt-get install ntp
อย่างน้อยคุณควรตั้งค่าพารามิเตอร์ต่อไปนี้ในไฟล์ /etc/ntp.conf config: server
ตัวอย่างเช่นเปิดไฟล์ /etc/ntp.conf โดยใช้โปรแกรมแก้ไขข้อความ vi:
# vi /etc/ntp.conf
ค้นหาพารามิเตอร์เซิร์ฟเวอร์และตั้งค่าดังนี้:
server pool.ntp.org
บันทึกไฟล์และรีสตาร์ทเซอร์วิส ntpd:
# /etc/init.d/ntpd start
คุณสามารถซิงโครไนซ์นาฬิการะบบกับเซิร์ฟเวอร์ NTP ได้ทันทีด้วยคำสั่งต่อไปนี้:
# ntpdate pool.ntp.org
* สำหรับการตั้งเวลาและวันที่ด้วยตนเองใช้ไวยากรณ์ต่อไปนี้:
date --set="STRING"
ตัวอย่างเช่นตั้งค่าข้อมูลใหม่เป็น 2 ตุลาคม 2549 18:00:00 ให้พิมพ์คำสั่งต่อไปนี้ในฐานะผู้ใช้รูท:
# date -s "2 OCT 2006 18:00:00"
หรือ
# date --set="2 OCT 2006 18:00:00"
คุณสามารถทำให้รูปแบบง่ายขึ้นโดยใช้ไวยากรณ์ต่อไปนี้:
# date +%Y%m%d -s "20081128"
ในการตั้งเวลาให้ใช้ไวยากรณ์ต่อไปนี้:
# date +%T -s "10:13:13"
ที่ไหน
10: ชั่วโมง (hh) 13: นาที (mm) 13: วินาที (ss)
ใช้% p locale ที่เทียบเท่ากับ AM หรือ PM ให้ป้อน:
# date +%T%p -s "6:10:30AM"
# date +%T%p -s "12:10:30PM"
from the internet
จากชื่อของ OP มาพิจารณาในทุกที่
รหัสเล็ก ๆ ที่ฉันพบเพื่ออัปเดตเวลาของคุณในกรณีที่คุณไม่ต้องการติดตั้งอะไรเพื่ออัพเดทวันที่ :)
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
google.in
เพื่อรับเวลาปัจจุบันสำหรับเขตเวลาของฉัน (อินเดีย)
Z
ที่ระบุว่าเวลาถูกกำหนดในเขตเวลาซูลูดังนั้นจึงไม่จำเป็นต้องมีการปรับเปลี่ยนเขตเวลาพิเศษหากมีการตั้งค่าเขตเวลาของคอมพิวเตอร์อย่างถูกต้อง
ฉันใช้สิ่งนี้:
sudo ntpd -qg; sudo hwclock -w
ก่อนบอก ntpd เพียงแค่ตั้งเวลาและหยุดหลังจากนั้นด้วย -q นอกจากนี้ในกรณีที่นาฬิกาของคุณมีข้อผิดพลาดใหญ่เราจำเป็นต้องบอก ntpd เพื่อปรับในกรณีนั้นด้วย -g สุดท้ายเขียนนาฬิกาไปยังฮาร์ดแวร์เพื่อรักษาการเปลี่ยนแปลงเมื่อรีบูตด้วย hwclock -w (-w สำหรับการตั้งค่า hardwareclock เป็นเวลาของระบบปัจจุบันมีความแตกต่าง)
ใช้ ntpdate, ntpd หรือ Chrony เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ NTP
บางดิสทริบิวชันกำลังขนส่งrdateสำหรับจุดประสงค์นั้น การใช้งานขั้นพื้นฐาน:
# just query
bash-4.2$ rdate pool.ntp.org
rdate: [pool.ntp.org] Wed Jun 12 11:05:40 2013
# set system time
bash-4.2$ rdate -s pool.ntp.org
pool.ntp.org
rdate
ตอนนี้ปฏิเสธการเชื่อมต่อจาก time.nist.gov
โรงงาน นอกจากนี้เมื่อคุณตั้งเวลาของระบบคุณควรตั้งนาฬิกาฮาร์ดแวร์ด้วยโดยการรันhwclock -w
เพื่อตั้งเวลาของระบบ จากนั้นคุณสามารถตรวจสอบความถูกต้องได้โดยเรียกใช้hwclock -r
หลังจากการวิจัยบางอย่างฉันลงเอยด้วยสิ่งนี้ ฉันใช้มันกับเซิร์ฟเวอร์ของฉันด้วย:
sudo apt-get install ntp
sudo dpkg-reconfigure ntp
ntpq -p
หากคำสั่งสุดท้ายแสดงรายการเซิร์ฟเวอร์ที่ถูกต้องแสดงว่าคุณพร้อมแล้ว คำสั่งจะเรียกใช้ชุดของอัลกอริทึมที่ค่อนข้างซับซ้อนซึ่งจะวนซ้ำนาฬิกาของคุณเหนือสิ่งอื่นใดและชดเชยให้ คุณจะจบลงด้วยนาฬิกาที่แม่นยำแม้ว่าคุณจะขาดการเชื่อมต่อกับเซิร์ฟเวอร์ NTP อย่างไรก็ตามคำสั่งนั้นต้องใช้เวลาสองสามนาทีในการเริ่มต้น
ที่มา: ที่นี่และที่นี่
เพื่อหา "เพื่อน" (โฮสต์ที่คุณสามารถสอบถาม) ntpq -p
คุณสามารถใช้
หากคุณมีบริการ NTP sudo service ntp stop
ทำงานคุณต้องหยุดมันก่อนที่ปรับปรุงด้วยตนเองเช่นการใช้
sudo ntpdate "peer"
ตอนนี้คุณสามารถสอบถามเพียร์สำหรับตัวอย่างการใช้
ใช้เครื่องมือrdateตามที่แนะนำในคำตอบของmanatworkแต่ด้วยโปรโตคอล SNTP -n
และ-4
ตัวเลือกIPv4 บน:
# just print synced time, not set
rdate -n -4 -p time-a.nist.gov
# print and set synced time
sudo rdate -n -4 time-a.nist.gov
เครื่องมืออาจถูกติดตั้งบน Debian ด้วยวิธีนี้:
sudo apt-get install rdate
นอกจากการตอบกลับของ Tusharฉันยังต้องทำapt-get install ntpdate
ใน Ubuntu 14.04 ของฉันด้วย
การโพสต์เป็นคำตอบเพราะชื่อเสียงไม่เพียงพอสำหรับการแสดงความคิดเห็น
ฉันกำลังมองหาวิธีการรีเซ็ตนาฬิกาที่ไม่ใช่ ntp / ntpd ฉันชอบการแยกวิเคราะห์ส่วนหัวของ google.com แต่พบว่าไม่ได้ทำงานบน ubuntu ฉันคิดว่านี่จะใช้ได้กับ Raspberry Pi ด้วย
sudo date +"%d %b %Y %T %Z" -s "$(wget -qSO- --max-redirect=0 http://google.com 2>&1 | grep '^ Date:' | cut -d' ' -f 5-)"
ยังเป็นทางเลือกที่ใช้ขดแทน wget
sudo date +"%d %b %Y %T %Z" -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-)"
ทดสอบกับ PI กับเครือข่ายมือถือและผลลัพธ์คล้ายกัน:
Using host & wget -- RCV: 1324 bytes SND: 581 bytes
Using host & curl -- RCV: 1318 bytes SND: 567 bytes
หมายเหตุฉันใช้โฮสต์เพื่อแก้ไข google.com เป็นที่อยู่ IP ดังนั้นฉันจึงสามารถเปิดเฉพาะ IP นั้นสำหรับช่วงเวลาของคำสั่งนี้ด้วย iptables