问题:在Linux上,我怎样通过命令行来改变日期和时间?
在Linux系统中保持日期和时间的同步是每一个Linux用户和系统管理员的重要责任.很多程序都依靠精确的时间信息得以正常工作.另外,不精确的日期和时间会使得日志文件中的时间戳变得毫无意义,减弱了它们在系统检查和检修中的作用.对于生产系统来说,精确的日期和时间甚至更为重要.例如,在零售公司中,所有产品必须时刻准确地计数(并储存在数据库服务器中)以便于财政部门计算每天及每周,每月,每年的支出和收入.
我们必须注意,在Linux机器上有两种时钟:由内核维持的软件时钟(又称系统时钟)和在机器关机后记录时间的(电池供电的)硬件时钟.启动的时候,内核会把系统时钟与硬件时钟同步.之后,两个时钟各自独立运行.
方法一:Date命令
在Linux中,你可以通过date命令来更改系统的日期和时间:
#date--set='NEW_DATE'其中NEW_DATE是诸如"Sun,28Sep201416:21:42"或者"2014-09-2916:21:42"的可读格式的日期字符串.
日期格式也可以手动指定以获得更精确的结果:
#date+FORMAT--set='NEW_DATE'例如:
#date+’%Y%m%d%H%m’--set='201409281518'你也可以用相对的方式地增加或减少一定的天数,周数,月数和秒数,分钟数,小时数。你也可以把日期和时间的参数放到一个命令中。
#date--set='+5minutes'#date--set='-2weeks'#date--set='+3months'#date--set='-3months+2weeks-5minutes'最后,把硬件时钟设置为当前系统时钟:
#hwclock--systohc运行hwclock--systohc的目的是将硬件时钟同软件时钟同步,这可以更正硬件时钟的系统漂移(即时钟按照一定的速度走快或走慢).
另一方面,如果硬件时钟是正确的,但系统时钟有误,可以用下面的命令更正:
#hwclock--hctosys在两种情况下,hwclock命令都是将两个时钟同步.否则,重启后时间会是错误的,因为当电源关闭时硬件时钟会记忆时间.然而,这对于虚拟机器并不适用,因为虚拟机器并不能访问硬件时钟.
方法二:NTP
另一种使系统日期和时间保持精确的方法是使用NTP(网络时间协议).在Linux上,ntpdate命令通过NTP将系统时钟和公共NTP服务器同步.
你可以使用如下命令来安装ntpdate:
在Debian及基于Debian的发行版上:
#aptitudeinstallntpdate在基于RetHat的发行版上:
#yuminstallntpdate使用NTP同步系统时钟:
#ntpdate-u<NTP服务器名或IP>#hwclock--systohc除了一次性使用ntpdate来同步时钟,你也可以使用NTP守护进程(ntpd),它会始终在后台运行,不断地通过NTP来调整系统时钟。谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。