คำสั่งให้อัพเดทเวลาและวันที่จากอินเทอร์เน็ตคืออะไร


132

คำสั่งให้อัพเดทเวลาและวันที่จากอินเทอร์เน็ตคืออะไร? มีแอพพลิเคชั่นใดบ้างที่อนุญาตให้ฉันทำเช่นนั้นจากส่วนต่อประสานผู้ใช้แทนที่จะมาจากเชลล์?


คุณสามารถระบุเวอร์ชั่นของ Ubuntu ที่คุณใช้อยู่ได้หรือไม่?
david6

1
คุณต้องการเวลาที่แม่นยำอย่างยิ่งหรือไม่? (ถ้าเป็นเช่นนั้นคุณต้องทำความคุ้นเคยกับntpqและเลือกเซิร์ฟเวอร์เวลา) หากคุณต้องการให้เวลาของคุณถูกต้อง (โดยประมาณ) ให้ลอง: การตั้งค่าระบบ >> เวลาและวันที่และตรวจสอบว่า ' ตั้งค่าเวลา ' ถูกตั้งค่าเป็น ' อัตโนมัติจากอินเทอร์เน็ต '
david6

ntpdถ้าคุณต้องการอย่างต่อเนื่องที่ถูกต้องมากติดตั้ง นี่เป็นกระบวนการขนาดเล็กที่ทำงานในพื้นหลังและปรับเวลาอย่างต่อเนื่องแทนการวางระเบิด / ข้าม แต่จะใช้ทรัพยากรของคุณเล็กน้อย
strugee


1
คำถามนี้มีความสำคัญอย่างยิ่งในปัจจุบัน เมื่อเร็ว ๆ นี้มันกลายเป็นเรื่องยุ่งยากมาก: พีซีบางเครื่องใช้ chrony หรือ ntpd พวกเขามักจะหาเหตุผลที่จะไม่อัปเดตเวลา (นาฬิกาผิดปกติชนะปัญหาที่เกี่ยวข้องกับการบูตสองระบบ ntp อาจปฏิเสธที่จะเชื่อถือแหล่งสัญญาณนาฬิกาที่ไม่มี อินเตอร์เน็ต) ยิ่งไปกว่านั้นถ้าคุณมีพีซีที่ใช้อินเทอร์เน็ต แต่มีนาฬิกาผิดเพราะตอนนี้เบราว์เซอร์และเว็บไซต์บังคับให้คุณใช้ HTTPS มันจะบล็อกเมื่อนาฬิกาของคุณผิดและคุณไม่สามารถหาวิธีแก้ไขได้! มันจะดีถ้ามีคำตอบที่ตอบทุกกรณี "ตั้งนาฬิกาด้วยมือ" เป็นหนึ่งที่น่าเชื่อถือมากที่สุดในขณะนี้ ...
BCT

คำตอบ:


144

sudo ntpdate time.nist.govคุณสามารถทำได้ด้วยเช่น เซิร์ฟเวอร์อื่น ๆ ได้แก่time.windows.comฯลฯ

http://www.pool.ntp.org/แสดงรายการเซิร์ฟเวอร์เวลาทั่วโลก


5
ฉันได้รับข้อผิดพลาดthe NTP socket is in use, exiting
Friederbluemle

7
@friederbluemle ตามที่กล่าวในคำตอบนี้sudo service ntp stopคุณจะต้องหยุดให้บริการ NTP จากนั้นคุณสามารถใช้คำสั่งที่แนะนำในคำตอบและในที่สุดคุณก็สามารถเริ่มบริการใหม่ได้ด้วยsudo service ntp start
Michele

ใช้งานได้ แต่ไม่ได้อัพเดตนาฬิกาในทาสก์บาร์โดยอัตโนมัติ
posfan12

4
ฉันได้รับข้อผิดพลาด "ntpdate [15806]: ไม่พบเซิร์ฟเวอร์ที่เหมาะสมสำหรับการซิงโครไนซ์" คำตอบที่สองด้านล่างเมื่อใช้ google.com ทำงานได้ดีขึ้น
Kim Stacks

7
ntpdate: ไม่พบคำสั่ง
rogerdpack

133

นี่คือรหัสน้อยดีที่ฉันพบในการปรับปรุงเวลาของคุณในกรณีที่คุณมีปัญหาเกี่ยวกับntp:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

ทางออกที่ดี!
Farid Rn

ดีมากทำงานให้ฉัน
Janderson Silva

8
นี่ควรเป็นคำตอบที่ยอมรับได้!
brijs

ตัวอย่างนี้มาถึงคลังแสงของฉัน! ;)
Dave Amit

2
นี่เป็นสิ่งที่ดี แต่โดยทั่วไปจะอยู่ระหว่าง 8 ถึง 50 มิลลิวินาทีเพราะมันไม่ได้ซิงโครไนซ์
Nonny Moose

48

ตั้งแต่ปี 2018 ที่มี Ubuntu 16.04 LTS ที่ติดตั้งใหม่sudo ntpdate time.nist.govให้การเรียกใช้:

sudo: ntpdate: command not found

นี่เป็นเพราะ ( แหล่งที่มาอย่างเป็นทางการ ):

ntpdateถูกพิจารณาว่าเลิกใช้แล้วtimedatectlและจะไม่มีการติดตั้งเพิ่มเติมตามค่าเริ่มต้น

แต่ให้ทำเช่นนี้เพื่อบังคับให้การซิงค์เกิดขึ้นทันที:

sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

ในกรณีของฉันฉันใช้ Ubuntu บน virtualbox และได้บันทึกสถานะของเครื่องดังนั้นเมื่อฉันเริ่มต้นอินสแตนซ์สำรองอีกครั้งมันไม่ได้ซิงค์นาฬิกาโดยอัตโนมัติเนื่องจากไม่มีเหตุการณ์การบู๊ตเพื่อกระตุ้นการซิงค์ ดังนั้นเวลายังคงแสดงสิ่งที่เป็นครั้งสุดท้ายที่ฉันใช้กล่องเสมือน


ฉันเพิ่งอัพเกรดเป็นไบโอนิคและสังเกตว่า ntpdate ไม่ทำงานอีกต่อไปและ timedatectl ใช้งานได้สำหรับฉัน
kapad

1
มันก็ใช้ได้กับฉันเช่นกันบน Ubuntu 18.04
kiamlaluno

timedatectlถ้าเวลาไม่เปลี่ยนแปลงตรวจสอบเขตเวลาของคุณมีเพียง ถ้ามันผิดดู--helpส่วนสำหรับคำสั่งเกี่ยวกับวิธีการเปลี่ยน
Brad Turek

1
จับที่ดีสำหรับกล่องเสมือน บันทึกจำนวนมากที่ปวดหัวแก้ไขข้อบกพร่อง!
Mohd Abdul Mujib

14

การรันคำสั่งนี้ในเทอร์มินัลควรทำเคล็ดลับ

sudo dpkg-reconfigure tzdata

คุณสามารถเพิ่มเขตเวลาพิเศษแบบกราฟิกฉันคิดว่าโดยคลิกที่นาฬิกาและดูตัวเลือกต่างๆ


เขตเวลาไม่เหมือนกันกับเวลา (แม่นยำ) แต่ก็ไม่ชัดเจนว่าVikramjeetกำลังถามอะไรเช่นกัน
david6

คำสั่งในการอัปเดตเวลาและวันที่จากอินเทอร์เน็ตคือคำถาม sudo dpkg-reconfigure tzdata คือคำตอบดังนั้นจะให้อะไร ความคิดเห็นเกี่ยวกับเขตเวลาที่เกี่ยวข้องกับสิ่งเดียวที่ฉันรู้ว่าเป็นไปได้กราฟิก
Jayo

ฉันสันนิษฐานว่าโดยกราฟิกพวกเขาหมายถึงวิธีกราฟิก (หรือ 'GUI') และไม่ใช่ทางภูมิศาสตร์ (หรือทั่วโลก)
david6

เพื่อให้ได้ผมผมไม่ทราบวิธีที่จะอัปเดตวันที่และเวลาที่ผ่านสุทธิกราฟิกดังนั้นฉันใช้ terminal, สิ่งที่ฉันไม่ทราบวิธีการทำกราฟิกมีการตั้งค่าโซนเวลาส่วนหนึ่งเกี่ยวกับโซนเวลาที่สองของฉัน เซนต์ในสิ่งที่สามารถทำได้เพื่อส่งผลกระทบต่อเวลาในรูปแบบกราฟิกเท่าที่ฉันรู้ฉันเข้าใจตอนนี้หรือไม่
Jayo

12

มันง่ายมากที่จะตั้งค่าจากบรรทัดคำสั่ง: https://help.ubuntu.com/lts/serverguide/NTP.htmlจากลิงค์นั้น:

Ubuntu มาพร้อมกับ ntpdate เป็นมาตรฐานและจะเรียกใช้ครั้งเดียวในเวลาบูตเพื่อตั้งค่าเวลาของคุณตามเซิร์ฟเวอร์ NTP ของ Ubuntu: ntpdate -s ntp.ubuntu.com

นี่คือตัวอย่าง GUI https://help.ubuntu.com/community/UbuntuTime#Time_Synchronization_using_NTP


6
กรุณาอย่าใช้ลิงค์ไปยังเว็บไซต์อื่น เมื่อพวกเขาหายไปข้อมูลที่คุณโพสต์ ป้องกันไม่ให้ 'เน่าลิงก์' เกิดขึ้นโดยการตอบเนื้อหาของลิงค์ (และให้เครดิตเมื่อเครดิตครบกำหนด)
Rinzwind

4

ส่วนใหญ่ที่นี่จะไม่ทำงานเนื่องจาก ntp จะแทนที่การตั้งค่าของคุณภายในไม่กี่วินาที

คุณต้องปิดการใช้งาน NTP ก่อน บน Ubuntu มันทำตาม:

    # Disable ntp
    sudo timedatectl set-ntp 0

จากนั้นคุณสามารถทำได้:

    # Set software clock 
    sudo date --set="2018-04-01 22:22:22"
    # Sync with hardware clock 
    sudo hwclock --systohc

3
dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
   | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"

หรือ

date -s `curl -I 'https://startpage.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'`

1
วิธีมาตรฐานในการตั้งค่าวันที่และเวลาโดยเชื่อมต่อกับเซิร์ฟเวอร์เวลาผ่าน ntp เหตุใดคุณจึงใช้การเชื่อมต่อ https เพื่อทำสิ่งนี้
xiota

1
//, บางครั้งมันก็ดีถ้าฉันมีทางเลือกอื่นในแบบมาตรฐานฉันคิดว่า
นาธาน Basanese

2
ISP ของฉันปิดกั้นเซิร์ฟเวอร์ NTP ของฉัน
ไทเลอร์

1

คุณต้องติดตั้งntpแพ็คเกจ การตั้งค่าวันที่ / เวลาสามารถใช้งานได้ภายใต้การตั้งค่าระบบ นี่คือข้อมูลเพิ่มเติม


2
ลิงก์นี้ตายแล้ว ... ดังที่ Rinzwind พูด "โปรดอย่าใช้ลิงก์ไปยังเว็บไซต์อื่น ๆ เมื่อข้อมูลหายไปเช่นนั้นคุณจะโพสต์ป้องกัน 'link rot' เกิดขึ้นโดยการตอบเนื้อหาของลิงค์ (และให้เครดิต) เมื่อถึงกำหนดเครดิต) " ขอบคุณ
Michele

1

มีแอพพลิเคชั่นใดบ้างที่อนุญาตให้ฉันทำเช่นนั้นจากส่วนต่อประสานผู้ใช้แทนที่จะมาจากเชลล์?

ฉันใช้ 17.10 และสามารถไปที่การตั้งค่า (จากเมนูด้านบนขวาใน UI)> รายละเอียด> วันที่และเวลา ในกรณีของฉันระบบของฉันไม่ได้อัปเดตจากอินเทอร์เน็ตแม้ว่า "วันที่ & เวลาอัตโนมัติ" ถูกตั้งค่าเป็น "เปิด" ฉันเพียงเปลี่ยนเป็น "ปิด" รอสักครู่แล้วเปลี่ยนกลับเป็น "เปิด" มันเลือกวันที่และเวลาปัจจุบันและฉันก็สบายดี


0

ขอบคุณTwiglets [สำหรับ AsusWRT / Merlin เราเตอร์]

นี่คือทางเลือกที่ไม่ได้กำหนดวัน !!! [-s ตัวเลือก] พิมพ์ 'วันที่' ที่ได้รับ & วันที่ที่กำหนดไว้สำหรับการเปรียบเทียบ

บน AsusWRT / Merlin สิ่งเดียวที่แปลกคือวันที่ดึงข้อมูลคือ ".... GMT" และยูทิลิตี้วันที่ตั้งเวลาที่ถูกต้อง แต่เปลี่ยนเป็น "... DST" Environment ตั้งค่า TZ เป็น "GMT"

datetext=$(curl -I 'https://1.1.1.1/' 2>/dev/null | grep "Date:" |sed 's/Date: [A-Z][a-z][a-z], //g'| sed 's/\r//') ; echo "Date Retrieved = $datetext" ; echo -n "Date set = " ; date -s "$datetext" -D'%d %b %Y %T %Z'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.