在编译程序的时候经常出现make: Warning: File `Makefile’ has modification time 3.1e+07 s in the future之类的错误,明显是系统时间不对导致的错误。于是google了一把找到了修改和同步时间的方法与大家分享。
- 修改时间date
我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2011年7月13日的命令如下。
将系统时间设定成11点12分0秒的命令如下。
注意,这里说的是系统时间,是linux由操作系统维护的。
在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
这个命令强制把系统时间写入CMOS。
- 同步时间 ntpd
但是我在同步时间的时候出现了the NTP socket is in use, exiting的错误而不能同步,那么怎么关掉NTP socket呢,继续google,结果如下。
Ok!成功同步了系统时间,以后不会再出现烦人的make: Warning: File `Makefile’ has modification time 3.1e+07 s in the future之类的错误了,O(∩_∩)O哈!