ฉันจะเปลี่ยนเขตเวลาเป็น centos 6.2 ได้อย่างไร


32

นี่คือผลลัพธ์ของdateคำสั่งของฉัน:

[root@r1304 ~]# date
Wed Apr 18 15:43:28 GST 2012

ฉันต้องการเปลี่ยนเขตเวลาเริ่มต้นของระบบเป็นเอเชีย / ดูไบ ฉันได้ติดตามการกวดวิชาและทำสิ่งนี้:

ln -sf /usr/share/zoneinfo/Asia/Dubai /etc/localtime

แต่ไม่มีผลกระทบ ดูเหมือนว่าสิ่งนี้จะทำแตกต่างกันใน CentOS 6 ฉันจะเปลี่ยนเขตเวลาได้อย่างไร


นี่ไม่น่าซับซ้อนนัก ...
ewwhite

คำตอบ:


41

ดูเหมือนว่า CentOS 6.2 จะไม่มีสาย hwclock อยู่ในนั้น/etc/rc.sysinitดังนั้นการเปลี่ยนแปลง/etc/sysconfig/clockจะไม่ทำงาน

ลองtzselectหรือใช้ ln -s /usr/share/zoneinfo/xxxx /etc/localtime


5
ขอบคุณที่ใช้งานได้สำหรับฉัน rm /etc/localtime && ln -s /usr/share/zoneinfo/America/New_York /etc/localtimeวิธีการแก้ปัญหาของผมก็คือ
Banjer

มีอะไรดีกว่าที่จะใช้สำหรับสิ่งนี้ - lnหรือcp?
XåpplI'-I0llwlg'I -

ในกรณีนี้การใช้ symlink น่าจะดีกว่าการคัดลอกไฟล์
JDS

2
ทำสิ่งนี้ แต่ต้องแน่ใจว่าได้อัพเดท/etc/sysconfig/clockเขตเวลาที่ถูกต้องเนื่องจากการปรับปรุงสามารถและจะเปลี่ยนเวลาท้องถิ่นกลับไปเป็นสิ่งที่อยู่ในนาฬิกา
Justin

ln -sดีกว่าcpเพราะหากแพ็คเกจ tzdata อัปเดตไฟล์โซนสำหรับภูมิภาคของคุณคุณจะเห็นการเปลี่ยนแปลงโดยไม่ต้องคัดลอกอีกครั้ง
David Purdue

9

ก่อนอื่นให้ใช้ tzselect เพื่อหาโซนเวลาของคุณ ผลลัพธ์สุดท้ายของ tzselect จะเป็นดังนี้:

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/New_York

บรรทัดสุดท้ายคือชื่อไฟล์ zoneinfo ของคุณ

ตอนนี้สร้าง symlink จาก / etc / localtime ไปยังไฟล์ zoneinfo ที่ถูกต้องเช่น:

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime 

จำเป็นต้องใช้แฟล็ก -f เพื่อเขียนทับ / etc / localtime ที่มีอยู่

หมายเหตุ: การเรียกใช้ tzselect จะไม่แตะต้องอะไรบนระบบของคุณ แต่จะแสดงข้อความออกมา "หรือ" ในคำตอบของ caojun นั้นทำให้เข้าใจผิด คุณต้องใช้ tzselect และ ln จาก tzselect manpage: "[tzselect] แสดงคำอธิบายเขตเวลาที่ได้ไปยังเอาต์พุตมาตรฐาน"


4

แก้ไขไฟล์/etc/sysconfig/clockให้เหมาะกับความต้องการของคุณ


1
นั่นไม่ใช่ทางออกที่สมบูรณ์ คุณต้องตั้งค่าเขตเวลา
ewwhite

5
แม้ว่านี่จะไม่ใช่คำตอบที่สมบูรณ์ แต่ขั้นตอนนี้ค่อนข้างสำคัญ โดยไม่ต้องอัปเดต sysconfig / clock (บางสิ่งที่เราไม่ได้ทำเมื่อเปลี่ยนเขตเวลา) ... ใช้การอัปเดต / ติดตั้ง yum (ไม่แน่ใจว่าอันไหน) จะทำให้เขตเวลาเปลี่ยนกลับเป็นรายการที่ระบุใน sysconfig / clock ... / etc / localtime ถูกแทนที่ด้วย ใช่แล้ว ... อย่าลืมอัพเดท sysconfig / clock เพื่อให้การเปลี่ยนแปลงเขตเวลาของคุณเป็นจริง
ไม่ระบุชื่อ - หนึ่ง

1
การอัปเดตยำอาจทำให้เกิดความเสียหายในกรณี / etc / localtime และ / etc / sysconfig / clock ชี้ไปที่สองเขตเวลาที่แตกต่างกัน ยกตัวอย่างเช่นการอัพเดท mysql อาจทำให้เกิดการเลื่อนเวลาที่ดีในทุกวัน
elbuild

2

หนึ่งควรรีสตาร์ท rsyslogd หลังจากเปลี่ยนเขตเวลาเพื่อให้เขตเวลาใหม่สะท้อนให้เห็นในบันทึก

ทำสิ่งนี้ด้วย: เริ่มบริการ rsyslog ใหม่


1

บทช่วยสอนง่ายๆลองสิ่งนี้ ..

[root@dlp ~]# vi /etc/sysconfig/clock

# change to your location
ZONE="Asia/Tokyo"

[root@dlp ~]# source /etc/sysconfig/clock # reload
# copy your timezone file under the "/usr/share/zoneinfo" like follows
[root@dlp ~]# cp -p /usr/share/zoneinfo

สิ่งนี้ใช้ได้กับฉันตัวเลือกอื่นไม่ได้
Bokw

1
หากคำแนะนำเหล่านี้ทำงานที่ทุกคนก็ต้องการจะดีที่จะอธิบายว่าทำไม ... ฉันเห็นเหตุผลว่าทำไมไม่มีการจัดหา/etc/sysconfig/clockจะมีผลกระทบใด ๆ ในภายหลังcpโปรแกรม (หรือจริงเกี่ยวกับโปรแกรมใด ๆ ภายหลัง)
offby1
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.