linux 时钟系统?linux版软件网站
大家好,关于linux 时钟系统很多朋友都还不太明白,今天小编就来为大家分享关于linux版软件网站的知识,希望对各位有所帮助!
linux 怎么设置硬件时钟 UTC
一、首先要弄清几个概念:
1.“系统时间”与“硬件时间”
系统时间:一般说来就是我们执行 date命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。
硬件时间:主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能存在时区换算,这要视具体的系统及相关设置而定)。
2.“UTC时间”与“本地时间”
UTC时间:Coordinated Universal 8 e2 i( H7 t0 ^/ ^Time世界协调时间(又称世界标准时间、世界统一时间),在一般精度要求下,它与GMT(Greenwich Mean Time,格林威治标准时间)是一样的,其实也就是说 GMT≈UTC,但 UTC是以原子钟校准的,更精确。
本地时间:由于处在不同的时区,本地时间一般与UTC是不同的,换算方法就是
本地时间= UTC+时区或 UTC=本地时间-时区
时区东为正,西为负,例如在中国,本地时间都使用北京时间,在linux上显示就是 CST(China Standard Time,中国标准时,注意美国的中部标准时Central Standard Time也缩写为CST,与这里的CST不是一回事!),时区为东八区,也就是+8区,所以 CST=UTC+(+8小时)或 UTC=CST-(+8小时)。
二、设置硬件时钟 UTC
硬件时间/sbin/hwclock
直接调用/sbin/hwclock显示的时间就是 BIOS中的时间吗?未必!这要看/etc/sysconfig/clock中是否启用了UTC,如果启用了UTC(UTC=true),显示的其实是经过时区换算的时间而不是BIOS中真正的时间,如果加上--localtime选项,则得到的总是 BIOS中实际的时间.
[12-01 19:07>~]# hwclock
2009年12月07日星期一 14时28分43秒-0.611463 seconds
[12-01 19:07>~]# hwclock--utc
2009年12月07日星期一 14时28分46秒-0.594189 seconds
[12-01 19:07>~]# hwclock--localtime
2009年12月07日星期一 06时28分50秒-0.063875 seconds
三、最后总结
1)/etc/sysconfig/clock文件,只对 hwclock命令有效,且只在系统启动和关闭的时候才有用(修改了其中的 UTC=true到 UTC=false的前后,执行 hwclock(--utc,或--localtime)都没有变化,要重启系统后才生效);
2)/etc/rc.d/rc.sysinit文件,run once at boot time,其中有从硬件时钟同步时间到系统时间的操作;
3)hwclock--localtime的输出,才是硬件时钟真正的时间。如果输出结果带时区(比如CST),还要看/etc/sysconfig/clock里的UTC参数,如果 UTC=false,那时区有意义;如果 UTC=true,那时区没意义,实际上是UTC时间。
4)在/etc/sysconfig/clock中 UTC=false时,date、hwclock、hwclcok--localtime输出的时间应该都一致,且此时 hwclock--utc是没有意义的;
5)在/etc/sysconfig/clock中 UTC=ture时,date、hwclock的输出是一致的,hwclock--localtime的输出则是UTC时间;
6)如果不想在输出中带时区,则 export LANG=C,然后再运行 hwclock就没有什么CST了,免得时区误导你;
7)hwclock--utc容易理解出错
8)系统关闭时会同步系统时间到硬件时钟,系统启动时会从硬件时钟读取时间更新到系统,这2个步骤都要根据/etc/sysconfig/clock文件中UTC的参数来设置时区转换。
修改系统时间linux
linux设置系统时间?
linux系统含两种时间,一种是系统时间,另一种是硬件时间。
date命令将日期设置为2018年8月07日
----date-s08/07/18
将时间设置为14点20分50秒
----date-s14:20:50
将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss)
----date0618141614.30
hwclock/clock命令查看、设置硬件时间
设置硬件时间:hwclock--set--date="08/07/1814:55"(月/日/年时:分:秒)或者#clock--set--date="08/07/1814:55"(月/日/年时:分:秒)
接下来要做的就是同步系统时间与硬件时间:
hwclock--hctosys或者#clock--hctosyshc代表硬件时间,sys代表系统时间,即系统时间同步硬件时间
时区设置
设置北京时间:
tzselect:执行tzselect命令-->选择Asia-->选择China-->选择eastChina-Beijing,Guangdong,Shanghai,etc-->然后输入1
设置完成后执行:TZ='Asia/Shanghai';exportTZ并将这行命令添加到:.profile
以上完成后,显示即为标准中国时间
以下有更简便的方法来修改时间
修改配置文件来修改时区:
1、修改vi/etc/sysconfig/clockZONE=‘Asia/Shanghai’
2、rm/etc/localtime
3、链接到上海时区文件:ln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime
凝思系统怎么修改时间?
方法/步骤分步阅读
1时区的调整,多数都是调整为亚洲上海时区
ln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime
2时间的设置
调整日期
date-s09/21/18-----2018年9月21日
调整时间
date-s17:06:50-----下午17点6分50秒
时间日期一起调整
date0921170618.50--------2018年9月21日17时6分50秒
3时间的手动同步,与微软时间同步
/usr/sbin/ntpdatetime.windows.com
4时间自动同步
crontab-e
*/10****/usr/sbin/ntpdatetime.windows.com>>/tmp/crontab.log
5ntp服务同步,修改/etc/ntp.conf文件,
主服务器设置
server127.127.1.0
fudge127.127.1.0stratum10
6ntp服务节点服务器设置
vi/etc/ntp.conf
disablemonitor
servermaster
7时间的查看输入:date即可。
unix时间的调整与linux有一些差别,要注意分开出来。
linux下普通用户怎样才能拥有设置系统时间的权限?
普通用户没有权限修改系统时间。
下面是Copy过来的。讲的是程序如何获得root权限。
最近在移植过程中,需要使用很多命令,而这些命令只能在获得超级用户即root权限才可以运行,于是查了很多资料没有很直白的方法可以实现.
结合自己的实践,提出如下步骤,可以实现在任何用户下均可以root的权限去运行程序.其实Linux中的很多文件系统都是root权限的,只是它同时允许任何用户都可以操作.使用命令ls-l你可以很明显看出这点.
下面说说如何实现让所有用户以root权限执行你的程序:
,在普通用户下(登录用户),编写你的应用程序,建议在root用户下调试你的程序,调试没问题后再赋予该应用程序root权限.
其次,在root用户下gcc编译生成可执行文件(注意:这点很重要),从而使应用程序生成的可执行文件具有root权限.
,使用命令chmod修改你生成的可执行文件的用户权限.
chmodus***(可执行文件名)
下面你就可以退出到普通用户下,运行你的程序即可发现和在root用户下面运行一样.
以上的方法主要是针对一般的C/C程序的,对于shell脚本程序方法类似.只是在需要修改其为可执行文件(在root用户下进行).
linux下怎么将显示的时间格式cst改为gmt?
1)找到相应的时区文件/usr/share/zoneinfo/Asia/Shanghai
用这个文件替换当前的/etc/localtime文件。
2)修改/etc/sysconfig/clock文件,修改为:
ZONE="Asia/Shanghai"
UTC=true
ARC=false
3)
时间设定成2005年8月30日的命令如下:
#date-s08/30/2005
将系统时间设定成下午6点40分0秒的命令如下。
#date-s18:40:00
4)
同步BIOS时钟,强制把系统时间写入CMOS,命令如下:
#clock-w
5)重启apache。
二、
本文档解释了如何从linux下设置计算机的时钟,如何设置您的时区和其它与linux如何保存时间相关的材料。
您的计算机有两个时钟,一个是始终运行的、由电池供电的(硬件的、BIOS或CMOS)时钟,另一个是由运行在您的计算机上的操作系统维护的(系统)时钟。硬件时钟通常只在操作系统启动时用来设置系统时钟,然后直到重启或关闭系统,由系统时钟来记录时间。在Linux系统中,您可以选择用UTC/GMT时间或本地时间来记录硬件时钟。推荐的选项是用UTC记录,因为夏令时可以自动记录。使用UTC记录硬件时钟的唯一不足是,如果您使用双系统,其它操作系统,如DOS要求硬件时钟用本地时间设置,那么在那个操作系统里时间将是错误的。
设置时区:
Linux下的时区是通过建立从/etc/localtime到/usr/share/zoneinfo目录下与您所在时区相符的文件的符号链结实现的。例如,由于我在南澳大利亚,/etc/localtime就是到/usr/share/zoneinfo/Australia/South的符号链结。要建立这个链结,运行:
ln-sf../usr/share/zoneinfo/your/zone/etc/localtime
替换your/zone为形如Australia/NSW或Australia/Perth的文件。看看/usr/share/zoneinfo目录都有什么时区。
这里假设/usr/share/zoneinfo是到/etc/localtime的链结的前提是RedhatLinux
在旧版本的系统里,您会发现使用/usr/lib/zoneinfo而不是/usr/share/zoneinfo。参考后面“一些应用程序中时间错误”。
服务器时间不对怎么从电脑上更改?
一、windows可以参考如下设置:
电脑时钟设置步骤如下:
1打开控制面板-点击时钟语言和区域按钮
2点击设置时间和日期按钮
3点击更改日期和时间按钮
4调整正确时间,点击确定按钮就可以
2、Linux上有相应的命令,比如date命令,下面是一些实例:
date-s"2012082715:04:00"
或者
date-s"2012-08-2715:04:00"
或者
date-s"15:04:002012-08-27"
或者
date-s"15:04:0020120827"
linux下的几种时钟和定时器机制
1. RTC(Real Time Clock)
所有PC都有RTC.它和CPU和其他芯片独立。它在电脑关机之后还可以正常运行。RTC可以在IRQ8上产生周期性中断.频率在2Hz--8192HZ.
Linux只是把RTC用来获取时间和日期.当然它允许进程通过对/dev/rtc设备来对它进行编程。Kernel通过0x70和0x71 I/O端口来访问RTC。
2. TSC(Time Stamp Counter)
80x86上的微处理器都有CLK输入针脚.从奔腾系列开始.微处理器支持一个计数器.每当一个时钟信号来的时候.计数器加1.可以通过汇编指令rdtsc来得到计数器的值。通过calibrate_tsc可以获得CPU的频率.它是通过计算大约5毫秒里tsc寄存器里面的增加值来确认的。或者可以通过cat/proc/cpuinfo来获取cpu频率。tsc可以提供比PIT更精确的时间度量。
3. PIT(Programmable internval timer)
除了RTC和TSC. IBM兼容机提供了PIT。PIT类似微波炉的闹钟机制.当时间到的时候.提供铃声. PIT不是产生铃声.而是产生一种特殊中断.叫定时器中断或者时钟中断。它用来告诉内核一个间隔过去了。这个时间间隔也叫做一个滴答数。可以通过编译内核是选择内核频率来确定。如内核频率设为1000HZ,则时间间隔或滴答为1/1000=1微秒。滴答月短.定时精度更高.但是用户模式的时间更短.也就是说用户模式下程序执行会越慢。滴答的长度以纳秒形式存在tick_nsec变量里面。PIT通过8254的0x40--0x43端口来访问。它产生中断号为IRQ 0.
下面是关于pIT里面的一些宏定义:
HZ:每秒中断数。
CLOCK_TICK_RATE:值是1,193,182.它是8254芯片内部振荡器频率。
LATCH:代表CLOCK_TICK_RATE和HZ的比率.被用来编程PIT。
setup_pit_timer()如下:
spin_lock_irqsave(&i8253_lock, flags);
outb_p(0x34,0x43);
udelay(10);
outb_p(LATCH& 0xff, 0x40);
udelay(10);
outb(LATCH>> 8, 0x40);
spin_unlock_irqrestore(&i8253_lock, flags);
4. CPU Local Timer
最近的80x86架构的微处理器上的local apic提供了cpu local timer.他和pit区别在于它提供了one-shot和periodic中断。它可以使中断发送到特定cpu。one-shot中断常用在实时系统里面。