ฉันมีเครื่องเสมือนที่ตั้งค่าเป็นPSTซึ่งเพื่อนร่วมงานสองคนมีในเขตเวลาที่แตกต่างกัน
หากฉันต้องการเปลี่ยนเขตเวลาเป็นESTและGMTฉันต้องทำอย่างไร
ฉันมีเครื่องเสมือนที่ตั้งค่าเป็นPSTซึ่งเพื่อนร่วมงานสองคนมีในเขตเวลาที่แตกต่างกัน
หากฉันต้องการเปลี่ยนเขตเวลาเป็นESTและGMTฉันต้องทำอย่างไร
คำตอบ:
ใช้ timedatectl
sudo timedatectl set-timezone <timeszone>
ตัวอย่าง:
เขตเวลาเป็น EST
sudo timedatectl set-timezone EST
เขตเวลาเป็น UTC
sudo timedatectl set-timezone UTC
รายการเขตเวลาที่ถูกต้องทั้งหมด
timedatectl list-timezones
คำสั่งนี้เป็นที่สมบูรณ์แบบสำหรับสคริปต์อัตโนมัติเพราะมันไม่จำเป็นต้องมีการโต้ตอบกับผู้ใช้ในขณะที่เมื่อเทียบกับคำตอบที่ได้รับการอื่น ๆ dpkg-reconfigure tzdata
ตาม
dpkg-reconfigure
การหลอกลวงได้
ในฐานะที่เป็น root คุณต้องดำเนินการ:
dpkg-reconfigure tzdata
เครื่องมือที่ใช้เมนูควรเริ่มต้นที่ช่วยให้คุณเปลี่ยนเขตเวลา
ต่อไปนี้ยังใช้งานได้ สำหรับ GMT:
ln -sf /usr/share/zoneinfo/GMT /etc/localtime
สำหรับ EST:
ln -sf /usr/share/zoneinfo/EST /etc/localtime
ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
วิธีที่ง่ายที่สุดโดยเฉพาะกับเซิร์ฟเวอร์คือการระบุเขตเวลา:
timedatectl list-timezones
และเลือกของคุณตัวอย่างเช่น:
timedatectl set-timezone Europe/Athens
แค่นั้นแหละ! , :-)
หากต้องการเรียกใช้โปรแกรมหนึ่งที่มีการตั้งค่าเขตเวลาที่แตกต่างกันให้ตั้งค่าTZ
ตัวแปรสภาพแวดล้อมเช่นเรียกใช้TZ=Pacific/Kiritimati date
เพื่อดูเวลาที่อยู่บนเกาะคริสต์มาสหรือexport TZ=Pacific/Kiritimati
ตั้งค่าล่าสุดสำหรับเซสชันเชลล์
แก้ไขtimezone
ไฟล์ที่/etc
โฟลเดอร์เป็น:
Etc/GMT
คุณสามารถใช้รูปแบบถัดไป:
Region "/" City
ตัวอย่างของ/etc/timezone
:
Europe/Athens
หรือ
Europe/Paris
Europe/London
คุณสามารถทดลองกับ: dpkg-reconfigure tzdata
และตรวจสอบ cat ไฟล์เขตเวลา
คุณต้องรีบูตหรือเริ่มบริการอีกครั้ง (ไม่ใช่บริการ ntp) ฉันไม่รู้ว่าอันไหน หากใครรู้โปรดแบ่งปันกับเรา (ทดสอบบน Ubuntu 15.10 การเปลี่ยนแปลงจะนำมาพิจารณาทันที)
cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime
ฉันขอแนะนำให้เชื่อมโยงกับคนอื่นเช่นที่กล่าวถึงโดยคนอื่น หากสคริปต์บาง/etc/localtime
ไฟล์เขียนทับไฟล์ของคุณโดยบังเอิญมันจะเขียนทับไฟล์เขตเวลาแปซิฟิกของคุณ ... และมันก็เป็นความเจ็บปวดเล็กน้อยที่จะแทนที่มัน
เพียงคัดลอกไฟล์ Pacific ไปที่ไฟล์ localtime ด้วยคำสั่งด้านบน
ฉันใช้สคริปต์ต่อไปนี้เพื่อขอให้ผู้ใช้ตั้งค่าเขตเวลาจากนั้นยืนยันว่าได้มีการตั้งค่าไว้แน่นอน:
#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl
tz-set
ผมเรียกมันว่า
ในฐานะที่เป็น root คุณต้องดำเนินการ:
ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata
สิ่งนี้ใช้ได้กับฉันใน GCP Ubuntu 14 ผ่าน SSH
sudo su
cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
tzdata
ว่ามันทำงานอย่างไร แต่ฉันไม่ต้องการสิ่งนี้ คำสั่งหนึ่งบรรทัด) ขอบคุณ!