Chuyển đổicáchệ thống Linuxsangbộđothờigianmới(DST) “Xuân chậm, thu nhanh”, đó là quy luật của thờigian ban ngày, và nó cũng được đưa vào nguyên tắc bộ đếm thờigian của máy tính (chú ý: ở đây là theo thờigian của Mỹ, ngược lại đôi chút với Việt Nam). Hiện nay, Quốc hội Mỹ đã thông qua một số thay đổi cho điều luật Daylight Savings Time (DST), quy định về thờigian ở Mỹ. Các thay đổimới này sẽ có hiệu lực trong năm nay. Và hệthống máy tính Linux của chúng ta cũng cần phải điều chỉnh một chút cho phù hợp kiểu tính thờigian mới. Các điều luật DST thường được áp dụng từ ngày Chủ nhật đầu tiên của Tháng Tư, nhưng theo quy định mới sẽ là ngày Chủ nhật thứ hai của Tháng Ba (tức là năm nay bắt đầu từ hôm chủ nhật 11/3). Thờigian kết thúc là vào ngày chủ nhật đầu tiên của tháng Mười Một (tức ngày 4/11 trong năm nay), thay vì ngày chủ nhật cuối cùng của tháng mười như trước kia. Quy định mới này ảnh hưởng không nhỏ tới các chương trình và hệ điều hành sản xuất từ trước năm 2005. Bởi chúng tuân theo các quy tắc DST Tháng tư/Tháng Mười cũ. Không giống với Windows, Linux và các thành viên còn lại trong họ hệ điều hành Unix bây giờ không tích hợp sẵn thành phần Daylight Savings Time mà sử dụng một phương thức hoàn toàn khác cho hệthốngthời gian. Hầu hết cáchệthốngLinux đều có hai đồng hồ. Một là đồng hồ phần cứng, a.k.a, “CMOS clock”, thường đặt trên hệthống máy tính dòng x86. Thứ hai là đồng hồ pin CMOS, đặt trên bảng mạch chính, chạy liên tục 24/7. Đồng hồ hệthống thường hoạt động sau khi khởi động máy tính. Hầu hết các chương trình và ứng dụng Linux nội bộ sử dụng đồng hồ này. Mặc định, đồng hồ hệthống lấy tín hiệu từ CMOS. Có một cách thiết lập tốt hơn nhiều là sử dụng kết nối Internet, với một chương trình như ntpd. Chương trình này sử dụng NTP (giao thức thờigian mạng) để lấy thờigian chính xác về từ NTS (máy chủ thờigian mạng). Một số hệthống Linux, Unix cũ đòi hỏi bạn phải sử dụng chương trình có tên ntpdate để cài đặt thờigian “một cách thủ công”. Bây giờ, tính năng này đã được tích hợp sẵn trong gói ntpd. Bạn không cần phải bận tâm đến việc cập nhật thờigian cho đồng hồ hệ thống. Trong Linux, thờigian khởi điểm thường được tính bắt đầu từ nửa đêm (theo giờ UTC tức Coordinated Universal Time - thờigian phổ biến chung), hay từ 00:00h đêm ngày 1 tháng 1 năm 1970. Sau đó, đồng hồ hệthống sẽ hiển thị thờigian được tính thông qua số giây tăng lên. Phương thức này tương tự như của Unix Epoch. (Với phương thức lưu trữ thờigian theo giây kiểu số nguyên 32-bit có dấu của Epoch, thờigian kết thúc thường được tính là đến 03:14:07 UTC của ngày Thứ Ba, 19 tháng 1 năm 2038. Sẽ có vấn đề nảy sinh nếu ngày này không chính xác). Ở đây, chúng ta không đề cập đến DST hay thờigian theo khu vực địa lý. Bởi vì Linux lưu trữ thờigian theo vùng và thông tin DST trong một file riêng (/usr/share/zoneifo). CáchệthốngLinux cũ hơn có thể lưu trữ trong file /usr/lib/zoneinfo. Thờigian theo vùng và DST đều được xác định bởi một liên kết tượng trưng tới thư mục /etc/localtime. Để hệthốngLinux của bạn biết chắc chắn khi nào là giờ DST, cần cập nhật file zoneinfo thường xuyên, hoặc thay thế nó bởi file mới với các quy định mới. Nếu nâng cấp thường xuyên máy tính, bạn sẽ thấy rằng hầu hết cáchệthốngLinux hiện đại đều tự động update thông tin DST mới phù hợp cho máy tính. Bạn nên cập nhật thường xuyên bản vá lỗi mới nhất của nhà sản xuất. Một số (không phải là tất cả) phân phối Linux và Unix có cung cấp tàiliệu hướng dẫn sử dụng các công cụ update để thiết lập hệthống với DST mới. Đó là: AIX, Debian Testing, Debian Unstable, FreeBSD, Novell SUSE Linux Enterprise, Red Hat Linux, và Solaris. Sau khi sử dụng các công cụ này, hãy kiểm tra lại xem liệucác thiết lập DST đã chính xác chưa. Tất nhiên, không thể chỉ kiểm tra bằng cách nhìn vào file zoneinfo. Chúng không thể đọc được bằng mắt thường. Thay vào đó, bạn cần dùng lệnh zdump trên giao diện shell. Zdump đưa ra thờigian hiện tại cho từng vùng theo tên cung cấp trên dòng lệnh. Chạy câu lệnh sau: zdump -v /etc/localtime | grep 2007 Nếu không nhận được bất kỳ kết quả nào từ lệnh zdump, có thể hệthống của bạn cần được mô tả thông tin thờigian khu vực cụ thể. Ví dụ: $ zdump -v /etc/localtime EST5EDT | grep 2007 Trong đó EST5EDT là thờigian địa phương cho vùng phía Đông nước Mỹ. Nếu sử dụng thờigian cho vùng trung tâm (Central), mã là CST6CDT, ở vùng núi (Mountain) là MST7MDT và ở vùng biển (Pacific) là PST8PDT. Nếu hệthống được thiết lập chính xác, nó sẽ đưa ra danh sách hiển thị bắt đầu với hai dòng có chứa “Sun Mar 11” (chủ nhật ngày 11/3). Nếu không, bạn sẽ thấy hai dòng chỉ có chữ “Sun Apr 1” (chủ nhật ngày 1/4) bên trong. Khi đó bạn cần tự update lại thông tin thờigian cho hệ thống. Chỉ cần bỏ ra chút thờigian với giao diện shell là bạn có thể thực hiện được thay đổi. Nó hoàn toàn không khó. Đầu tiên, sử dụng trình duyệt Web để kiểm tra các file thông tin DST và thờigian theo vùng được cập nhật gần đây nhất trên website: ftp://elsie.nci.nih.gov/pub/ Như ví dụ với một hệthống thử nghiệm, file dữ liệumới nhất là tzdata2007c.tar.gz. Tiếp theo, nếu chưa có một thư mục cho các file tạm thời và các bản download, hãy tạo nó và đặt tên là tzdata. Tạo và di chuyển thư mục này bằng các lệnh: $ mkdir tzdata $ cd txdata Bây giờ, download thư mục vào hệthống với tiện ích fpt. Nếu không gặp phải vấn đề gì, bạn gần như đã có một bản copy của wget. Chạy: $ wget ftp://elsie.nci.nih.gov/pub/tzdata2007c.tar.gz Sau đó giải nén file với một tiện ích lưu trữ như tar: $ tar -xzvf tzdata2007c.tar.gz Bây giờ bạn đã có thông tin về trình tự thời gian, tiếp theo là đặt định dạng phù hợp. Bạn cần chuyểnsangtài khoản người dùng root hoặc sử dụng lệnh sudo để chạy các dòng sau: # zic -d zoneinfo northamerica # cd zoneinfo # cp -r * /usr/share/zoneinfo/ Zic sẽ chuyển dữ liệu vào định dạng Linux cần thiết và các lệnh khác sẽ copy thông tin mới vào thư mục phù hợp. Nếu đang sử dụng phiên bản Linux cũ hơn, có thể bạn cần đặt file vào thư mục như bên dưới: # cp -r * /usr/lib/zoneinfo/ Sau đó kiểm tra lại xem toàn bộ thiết lập đã được đặt chính xác với DST mới hay chưa bằng cách quay trở lại và sử dụng thường trình zdump: zdump -v /etc/localtime | grep 2007 Tất cả đã xong, cũng không khó lắm phải không các bạn. Cuối cùng là phải thiết lập để đảm bảo tất cả dịch vụ daemon đều biết về thay đổi của DST. Nhiều chương trình ứng dụng nền tảng quan trọng như sendmail, postfix hay BIND chỉ xem xét thư mục /etc/localtime, vì chúng chỉ kiểm tra thời gian, ngày tháng khi khởi động. Thay vì phải theo dõicác chương trình ứng dụng này, cách tốt nhất là đơn giản hãy khởi động lại hệ thống. Tất cả dịch vụ sẽ được làm tươi lại với thông tin thờigian DST chính xác, được khoá an toàn trong đồng hồ CMOS. Bây giờ, máy tính của bạn đã có thể hoạt động tốt về thời gian. Bạn có thể thấy rằng vấn đề này không quá tệ, ít nhất nó không giống với tình trạng Y2K của năm 2000. . Chuyển đổi các hệ thống Linux sang bộ đo thời gian mới (DST) “Xuân chậm, thu nhanh”, đó là quy luật của thời gian ban ngày, và nó. thay đổi cho điều luật Daylight Savings Time (DST), quy định về thời gian ở Mỹ. Các thay đổi mới này sẽ có hiệu lực trong năm nay. Và hệ thống máy tính Linux