Linux下时区与时间设置方法

首先要说明的是我的系统是fedora,其他系统可能不完全相同。

1,时间保存在硬件实时钟(RTC)中,RTC由主板电池供电,即使关断电源也不会造成时间丢失。

2,系统启动时从RTC获取时间,这个步骤在rc.sysinit中做:

a,首先从/etc/sysconfig/clock中获取RTC相关参数UTC/ARC/SRM。UTC为true表示RTC保存的时间是UTC时间,false表示保存的是本地时间。ARC与SRM的含义参考hwclock的manpage,一般false即可;

b,根据上面获取的内容构造hwclock命令的参数,将时间由RTC读取到系统时钟。

*需要说明的一点是hwclock的输出是本地时间,localtime/utc参数只是用来告诉hwclock命令COMS时区是哪个时区。比如Linux系统的系统时区设置为CST(中国标准时间),COMS时间采用墙上时间,即COMS时区也是CST,这时如果使用--utc参数,会让hwclock误以为COMS时区为UTC,所以输出的时间会自动+8。

3,tzset():tzset在程序中用来初始化tzname等全局变量,它首先试图从环境变量“TZ”中获取时区,如果TZ环境变量存在,即getenv("TZ")返回值不为NULL,且包含内容有效,则使用TZ值;如果该变量存在但内容无效,比如包含错误的时区名字,则使用UTC;如果该变量不存在,即getenv("TZ")返回NULL,则查找系统时区设置文件,一般是/etc/localtime。localtime所指文件的内容格式可参考tzfile(5)。

4,time():返回自00:00:00 UTC, January 1, 1970到现在所经过的秒数,注意,是UTC。

5,ctime()/localtime()/mktime():这类和时区相关的函数内部会调用tzset,但只是第一次调用tzset会做实际初始化,后面的调用都是直接返回。

6,系统关闭时,如执行shutdown/reboot/poweroff/halt等操作后,系统时间会保存到RTC中,这是在halt脚本中完成的,参看/etc/init.d/halt内容。

时间: 2024-11-03 21:00:15

Linux下时区与时间设置方法的相关文章

Linux系统调整时区和时间的方法

比如我要吧机器调成太平洋时区,那么我可以输入以下的命令,我们创建一个Link文件来指明是Pacific Time: cd /etc/ rm –r localtime sudo ln -s /usr/share/zoneinfo/US/Pacific localtime 调节完时区之后,接下来就是设置时间,设置在刚才的时区设定下的时间,我们这里设置的是24时制: date +%T -s "14:41:00" 本文URL地址:http://www.bianceng.cn/OS/Linux/

Linux 下如何用 mutt 设置邮件报警

Linux 下如何用 mutt 设置邮件报警 在Linux里,很多人都会使用到邮件报警,而且这方面的软件也众多,常见的像SendMail, sendEmail, Postfix等等,它们的优缺点我就不说了,使用上也各有所爱. 今天我要给大家介绍的mutt,也许大家也不陌生,网上太多关于mutt和sendmail或者跟msmtp合作使用的教程.其实,mutt非常的强大只要你仔细研究一下官方文档. 系统环境:CentOS 6.5 0.在正式安装mutt之前 先检查一下两个安全组件. OPENSSL:

PHP-Fcgi下PHP的执行时间设置方法

昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误,原来PHP-Fcgi下的设置执行时间与isapi的不同   一般情况下设置PHP脚本执行超时的时间 一.在php.ini里面设置 max_execution_time = 1800; 二.通过PHP的ini_set 函数设置 ini_set("max_execution_time", "1800"); 三.通过set_time_limit 函数设置 s

总结UNIX/LINUX下C++程序计时的方法_C 语言

前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 下面看看小编为大家整理几个计时方法 方法一: 如果是想统计某个程序的运行时间,那么可以使用 time ./a.out 方法二: 如果是想对某个函数或者语句进行计时,那么有别的方法.比如说,gettimeofday函数.直接贴示例代码: #include <sys/time.h> v

解决linux下vim中文乱码的方法_Linux

Vim编码的详细介绍 Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2.UTF-8 等流行的 Unicode 编码方式. Vim 有四个跟字符编码方式有关的选项,encoding.fileencoding.fileencodings.termencoding (这些选项可能的取值请参考 Vim 在线帮助  :help encoding-names),它们的意义如下:     1.encoding: Vim 内部使用的字符编码方式,包括 Vim 的

PHP-Fcgi下PHP的执行时间设置方法_php技巧

一般情况下设置PHP脚本执行超时的时间 一.在php.ini里面设置 max_execution_time = 1800; 二.通过PHP的ini_set 函数设置 ini_set("max_execution_time", "1800"); 三.通过set_time_limit 函数设置 set_time_limit(1800); PHP-Fcgi下PHP的执行时间设置方法 昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gatew

linux下python抓屏实现方法

  本文实例讲述了linux下python抓屏实现方法.分享给大家供大家参考.具体实现代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7

Linux下获取用户主目录的方法分享

  Linux下获取用户主目录的方法分享     方法如下 char *path = getenv("HOME"); printf("path = %sn",path); getenv是标准库函数,包含stdlib.h头文件就可.

Linux系统网卡绑定的设置方法

 Linux系统网卡绑定的设置方法   简介 端口绑定就是将多个物理网卡绑定为一个逻辑网卡;根据模式不同可以网卡绑定的作用可分为提升吞吐量和热备份两个主要作用,一般都是提升吞吐量.另外需要bonding内核模块的支持. 配置 挂载模块 修改模块挂载配置文件vim /etc/modprobe.conf alias bond0 bonding options bond0 mode=balance-alb miimon=100 use_carrier=0 修改网卡参数 添加bond0配置vim /et