จะเปลี่ยนวันและเวลาเซิร์ฟเวอร์ของ Ubuntu ผ่านบรรทัดรับคำสั่งได้อย่างไร


38

วันที่และเวลาปัจจุบันของเซิร์ฟเวอร์ Ubuntu แตกต่างจากวันที่และเวลาในโซนเวลา ฉันได้ลองใช้:

sudo date "30 Sep 2015 4:43:42"

เพื่อเปลี่ยน แต่ไม่ได้เปลี่ยนวันที่และเวลาเพียงพิมพ์บนเทอร์มินัลวันที่และเวลาที่ฉันเปลี่ยน แต่เมื่อฉันดำเนินการ:

sudo hwclock --show

วันที่และเวลายังคงเป็นวันที่เก่า

วิธีที่ถูกต้องในการเปลี่ยนวันที่และเวลาของ Ubuntu Server คืออะไร?


คุณพิมพ์ "วันที่ sudo newdate" - คำว่า "newdate" หรือไม่
Wolfgang

1
Nope ฉันได้แก้ไขคำถามของฉัน ฉันพิมพ์ "30 กันยายน 2558 4:43:42"
Priska Aprilia

คำตอบ:


66

คุณสามารถกำหนดวันที่ของระบบด้วยคำสั่งนี้:

sudo date --set="2015-09-30 10:05:59.990"

จากนั้นเมื่อใช้dateงานก็ควรจะแสดงให้ถูกต้อง

ในตอนนี้คุณควรตั้งนาฬิกาฮาร์ดแวร์ใน BIOS ของระบบด้วยว่าการตั้งค่ายังคงมีอยู่ในการรีบูตเครื่อง (ระหว่างการเริ่มต้นระบบเวลาตั้งค่าระบบเป็นค่าของนาฬิกาฮาร์ดแวร์) ทำได้ด้วยhwclock:

sudo hwclock --systohc

สิ่งนี้จะได้รับค่านาฬิการะบบ (sys) และตั้งค่านาฬิกาฮาร์ดแวร์ (hc) ตรวจสอบด้วยhwclockคำสั่ง ทั้งhwclockและdateควรจะแสดงวันที่และเวลาเดียวกัน


ในการตั้งเขตเวลาของคุณคุณสามารถใช้คำสั่งนี้:

sudo dpkg-reconfigure tzdata

BTW : ถ้าคุณใช้เครื่องนี้เป็นเซิร์ฟเวอร์ผมขอแนะนำให้ใช้ NTP-ไคลเอ็นต์การซิงค์เวลาผ่านเครือข่าย ดังนั้นคุณสามารถรับประกันได้ว่าเซิร์ฟเวอร์ทั้งหมดของคุณมีการตั้งค่าเวลาเดียวกัน นี่จะซิงค์เวลาขณะที่เครื่องทำงาน หากคุณมีแอปพลิเคชั่นซึ่งขึ้นอยู่กับเวลาซิงค์ผ่านเซิร์ฟเวอร์ฉันแนะนำ NTP-Daemon ยิ่งมันทำงานในพื้นหลังนานเท่าไหร่ก็ยิ่งแม่นยำมากขึ้นเท่านั้น


1
ฉันพลาดขั้นตอนการซิงโครไนซ์นาฬิกา ขอบคุณสำหรับคำตอบมันช่วยฉันได้!
Priska Aprilia

1
3 ตัวเลือกช่วยมันเปลี่ยนetc / timezone =) เช่นphp.net/manual/en/timezones.php !!! เหมือนกันอย่างแน่นอน !!!
Vladimir Ch

@VladimirCh Fortunatelly ชื่อโซนเวลามี stadarized ดังนั้นเราไม่จำเป็นต้องทำการปรับเปลี่ยนใด ๆ ระหว่างระบบ โอ้รอ ... มีบางเวอร์ชั่นของ Microsoft ด้วย ...
PeterM

1
ฉันพยายามที่จะเปลี่ยน แต่มันไม่เปลี่ยนแปลง: - $ sudo date --set = "2015-09-30 10: 05: 59.990" พุธ 30 กันยายน 10:05:59 +0530 2015 $ date วันที่ พ.ค. 23 15:10:37 +0530 2019
Vinod

6
  1. ค้นหาเขตเวลาของคุณ
timedatectl list-timezones
  1. ตั้งค่าเขตเวลาของคุณ
sudo timedatectl set-timezone America/Toronto
  1. ทำให้สามารถ timesyncd
sudo timedatectl set-ntp on

ด้วยสิ่งนี้ควรตั้งเวลาและทำข้อมูลให้ตรงกัน

คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับบทช่วยสอนนี้: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04


1
วิธีที่ดีที่สุดในการแก้ไขโดยไม่ต้องตั้งค่าชั่วโมงและนาทีด้วยตนเอง! ขอบคุณมาก!
Rafael Moni

4

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

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

ตามที่ระบุในคำตอบนี้
จากนั้นคุณซิงค์นาฬิกาฮาร์ดแวร์กับนาฬิการะบบโดยใช้

sudo hwclock --systohc

ตามที่กำหนดโดย @chaos ในชุดข้อความนี้


1

เพียงแค่พิมพ์

sudo date newdatestring

ด้วยnewdatestringในรูปแบบ nnddhhmmyyyy.ss

  • nn: เดือน (สองหลัก) (01 ถึง 12)
  • dd: วัน (สองหลัก) (01 ถึง 31) โดยมีกฎปกติสำหรับวันตามเดือนและปีที่สมัคร
  • hh: ชั่วโมง (สองหลัก) (00 ถึง 23)
  • mm: นาที (สองหลัก) (00 ถึง 59)
  • yyyy: ปี; มันอาจเป็นตัวเลขสองหลักหรือสี่หลัก
  • เอสเอสคือสองหลักวินาที (00 ถึง 59) สังเกตช่วงเวลา '.' ก่อนที่เอสเอส

แต่ข้างคำสั่ง date คุณอาจชอบ NTP "solution" (โปรโตคอลเวลาเครือข่าย): Serverguide - NTPง่ายต่อการจัดการและแม่นยำกว่าการตั้งวันที่ด้วยมือ คุณสามารถใช้ cronjob หรือ ntp daemon (ntpd) เพื่ออัพเดทเวลาของคุณทุก ๆ x ชั่วโมง / นาที ...

หวังว่านี่จะช่วยได้!


ช่วงวันที่ไม่ถูกต้องเมื่อฉันลองด้วย "093005082015.15" ซึ่งย่อมาจาก 30 กันยายน 2558, 05:08:15
Priska Aprilia

sudo date "093005082015.15" ทำงานกับฉัน
vusan

0

สำหรับผู้ที่กำลังมองหารุ่นยุควินาที

  1. ตั้งวันที่และเวลาปัจจุบัน

    sudo date -s @1565864862
  2. รับวันที่และเวลาปัจจุบัน

    date +%s
    

    เอาท์พุท 1565864862

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.