怎么设置Linux系统时间
Linux修改与同步时间
时间修改:(直接修改)
date -s 直接设置系统时间
如将系统时间设定成2014年3月5日的命令如下。
#date -s 03/05/14
将系统时间设定成下午15点17分0秒的命令如下。
#date -s 15:17:00
注意,这里说的是系统时间,是linux由操作系统维护的。
需要使用 #clock -w 强制把系统时间写入CMOS
在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。
为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一
段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写
入CMOS,这就是问题的原因,要确保修改生效。
时间修改:(图形化界面修改)
# system-config-date出现一个图形化的界面,直接修改
设置NTP,需要:时间服务器的主机名
然后运行
# service ntpd restart
# chkconfig ntpd on
1、时区设置可以通过tzselect命令来进行设置,具体执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, Guangdong, Shanghai, etc-->然后输入1,如下图所示,根据向导输入相应的数字键回车键即可。
2、设置日期可以通过date命令来进行设置。
例如:将系统日期设定成2019年11月3日的命令
例如:将系统时间设定成下午4点44分44秒的命令
命令 : date -s 16:44:44
使用date命令即可设置系统时间。
1 、查看系统时间
date //详细用法可参考《linux就该这么学》第二章
2、设置当前系统时间为2015年5月8日19点48分0秒
date -s "2015-5-8 19:48:00"
linux服务器时间校准方法
首先安装NTP:
yum install -y ntpdate
然后执行NTP命令:
ntpdate timewindowscom
或者:
ntpdate cnpoolntporg
想要偷懒,让机器自动校准时间的话,只需要将命令加入到cron就可以了。
crontab -e2 /1 /sbin/ntpdate cnpoolntporg #每隔一个小时同步一次
保存退出即可。 《Linux就该这么学》一起学习
使用“date -s”命令来修改系统时间
比如将系统时间设定成2007年8月1日的命令如下。
[root@localhost root]# date -s 08/01/2005
将系统时间设定成下午5点10分0秒的命令如下。
[root@localhost root]# date -s 17:10:00
这里说的是系统时间,是linux由操作系统维护的。
在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。
如果要确保修改生效可以执行如下命令。
[root@localhost root]# clock -w
或者
[root@localhost root]# hwclock
这个命令强制把系统时间写入CMOS。
Linux时钟的分类
Windows时钟大家可能十分熟悉了,Linux时钟在概念上类似Windows时钟显示当前系统时间,但在时钟分类和设置上却和Windows大相径庭。和Windows不同的是,Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。
既然Linux有两个时钟系统,那么大家所使用的Linux默认使用哪种时钟系统呢?会不回出现两种系统时钟冲突的情况呢?这些疑问和担心不无道理。首先,Linux并没有默认哪个时钟系统。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
从Linux启动过程来看,系统时钟和硬件时钟不会发生冲突,但Linux中的所有命令(包括函数)都是采用的系统时钟设置。不仅如此,系统时钟和硬件时钟还可以采用异步方式,见图1所示,即系统时间和硬件时间可以不同。这样做的好处对于普通用户意义不大,但对于Linux网络管理员却有很大的用处。例如,要将一个很大的网络中(跨越若干时区)的服务器同步,假如位于美国纽约的Linux服务器和北京的Linux服务器,其中一台服务器无须改变硬件时钟而只需临时设置一个系统时间,如要将北京服务器上的时间设置为纽约时间,两台服务器完成文件的同步后,再与原来的时钟同步一下即可。这样系统和硬件时钟就提供了更为灵活的操作。
设置Linux的时钟
在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。由于目前绝大多数用户使用x86硬件体系,所以可以视这两个命令为一个命令来学习。
1在虚拟终端中使用date命令来查看和设置系统时间
查看系统时钟的操作:
# date
设置系统时钟的操作:
# date 09171327200330
通用的设置格式:
# date 月日时分年秒
2使用hwclock或clock命令查看和设置硬件时钟
查看硬件时钟的操作:
# hwclock --show 或
# clock --show
2003年09月17日 星期三 13时24分11秒 -0482735 seconds
设置硬件时钟的操作:
# hwclock --set --date="09/17/2003 13:26:00"
或者
# clock --set --date="09/17/2003 13:26:00"
通用的设置格式:hwclock/clock --set --date=“月/日/年 时:分:秒”。
3同步系统时钟和硬件时钟
Linux系统(笔者使用的是Red Hat 80,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。如果不大方便重新启动的话(服务器通常很少重启),使用clock或hwclock命令来同步系统时钟和硬件时钟。
硬件时钟与系统时钟同步:
# hwclock --hctosys
或者
# clock --hctosys
上面命令中,--hctosys表示Hardware Clock to SYStem clock。
系统时钟和硬件时钟同步:
# hwclock --systohc
或者
# clock --systohc
修改linux的时间可以使用date指令
修改日期:
时间设定成2009年5月10日的命令如下:
#date -s 05/10/2009
修改时间:
将系统时间设定成上午10点18分0秒的命令如下。
#date -s 10:18:00
修改时区:
找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime。
修改/etc/sysconfig/clock文件的内容为:
ZONE=”Asia/Shanghai”
UTC=false
ARC=false
同步bios时间:
同步BIOS时钟,强制把系统时间写入CMOS,命令如下:
#clock -w
date命令的功能是显示和设置系统日期和时间。
输入date 查看目前系统时间。
修改时间需要 date -功能字符 修改内容
命令中各选项的含义分别为:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间
时间域
%H 小时(0023)
%I 小时(0112)
%k 小时(023)
%l 小时(112)
%M 分(0059)
%p 显示出AM或PM
%r 时间(hh:mm:ss AM或PM),12小时
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 秒(0059)
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 时区 日期域
%a 星期几的简称( SunSat)
%A 星期几的全称( SundaySaturday)
%b 月的简称(JanDec)
%B 月的全称(JanuaryDecember)
%c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
%d 一个月的第几天(0131)
%D 日期(mm/dd/yy)
%h 和%b选项相同
%j 一年的第几天(001366)
%m 月(0112)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(0053,星期一为第一天)
%x 显示日期的格式(mm/dd/yy)
%y 年的最后两个数字( 1999则是99)
%Y 年(例如:1970,1996等)
需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。
例1:用指定的格式显示时间。
$ date '+This date now is =>%x ,time is now =>%X ,thank you !'
This date now is =>11/12/99 ,time is now =>17:53:01,thank you !
例2:用预定的格式显示当前的时间。
# date
Fri Nov 26 15:20:18 CST 1999
例3:设置时间为下午14点36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
例4:设置时间为1999年11月28号。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999
实例:设置时间伟2008年8月8号12:00
# date -s "2008-08-08 12:00:00"
修改完后,记得输入:clock -w
把系统时间写入CMOS
一、搭建时间服务器
1、在一台linux服务器安装ntp server
2、修改ntpconf配置文件
vi /etc/ntpconf
restrict default nomodify
(允许任何IP的客户机都可以进行时间同步,如果是只允许某个网段的客户机进行时间同步可以这样写restrict 1058260 mask 2552552550 nomodify)
3、以守护进程启动ntpd
#/etc/rcd/initd/ntpd -c /etc/ntpconf -p /tmp/ntpdpid
#/etc/rcd/initd/ntpd start
二、配置时间同步客户机
ntpdate 101281425
hwclock -w
使用cron 定时同步
vi /var/spool/cron/root(或crontab -e)
增加一行,在每天的1点10分、9点10分、17点10分与时间同步服务器进行同步并写入BIOS
10 1 ,9,17 root /usr/sbin/ntpdate 101281425; /sbin/hwclock -w
0条评论