1. 前言
会关心这个是因为在东欧的服务器时间和根据系统时间自动命名的目录和摄像头显示的时间一塌糊涂,尽管所有设备都NTP到同一个机器时间上了
2. 工具
2.1 UTC, GMT, UT
首先要了解几个通用的时间格式
UTC (Coordinated Universal Time) - 明明应该是CTU,怎么变成UTC了?因为英国人和法国人谁也不服谁。。。
注意 1. UTC没有时区(Time Zone)或Daylight Savings Time (DST) 的概念,所以很合适用作统一的标准
2. official UTC 和 geographical UTC 的区别。有的国家和地区在地理上属于某个UTC区,但实际上却采用另一个UTC的时间。比如白俄罗斯(Belarus)在2011年之前用的是Eastern European Time (EET),也就是 (UTC+02:00)。在2011年之后改为Further-eastern European Time (FET) ,也就是 (UTC+03:00). 但是到了夏天它们有统一了,因为EET变成 Eastern European Summer Time (UTC+03:00) 。
Greenwich Mean Time (GMT) - 相信更为人知的是格林威治时间。在大多数情况下可以认为和UTC是一样一样的。不过GMT是和大英帝国一样的历史遗留物,任何和科学研究有关的都应该使用UTC已避免歧义
GMT is the same as Western European Time
2.2. Linux(Ubuntu)下的时间工具
这里主要关心命令行的用法
设置时区: dpkg-reconfigure tzdata 取代老的tzconfig。是个TUI (Text-based User Interface)形式的工具
显示系统上安装的时区: zselect - 用来显示/查找常用的国家,地区对应的时区和时间。但并不做任何改变!
查看当前系统时钟:
hwclock(8)- - debug
NTP Server: ntpd(8)
adjtimex(8)
2.3 相关系统文件
/etc/default/rcS: UTC=[yes | no]
/etc/localtime
/etc/timezone
/etc/adjtime: hwclock会用到
/usr/share/zoneinfo/
2.4 Clocks in a Linux System
There are two main clocks in a Linux system:
The Hardware Clock,又叫the real time clock, the RTC, the BIOS clock, and the CMOS clock
The System Time
2.5 时间函数
tzset(3) - #include <time.h> void tzset (void);
settimeofday(2)
3. 时间同步
3.1 Time Synchronization using NTP
HOWTO: Set Up an NTP Server
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict otherntp.server.org mask 255.255.255.255 nomodify notrap noquery restrict ntp.research.gov mask 255.255.255.255 nomodify notrap noquery