第二章、linux的时间管理
linux系统一般存在两个时间,一个属于linux操作系统的系统时间,系统时间受操作系统影响,可能会出现时间不准确,但另一个真实硬件上的时间,也就是用纽扣电子持续供电的硬件时间,误差是非常小的。
一、如何查看两种不同的时间
查看系统时间:
date
例子:
[root@study ~]# date Thu Jan 21 12:44:21 CST 2016
查看硬件时间:
hwclock 或 clock
例子:
[root@study ~]# hwclock Thu 21 Jan 2016 12:44:23 PM CST -0.490602 seconds
二、如何修改系统时间及系统时间的输出格式
命令:date
语法:date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
常见参数:
man date 或 date --help 或 date -h
%y 显示年的后两位,2016则显示为16
%Y 显示完整的年,2016则显示为2016
%m 显示月(01..12)
%d 显示日期(01..31)
%H 显示小时(00..23)
%M 显示分钟(00..59)
%S 显示秒(00..60)
修改系统时间:
[root@study ~]# date -s 20140817 Sun Aug 17 00:00:00 CST 2014 #修改系统时间2014年8月17日
[root@study ~]# date -s 22:00:00 Sun Aug 17 22:00:00 CST 2014
[root@study ~]# date -s “20140817 22:00:00” #注意这里有空格所以要有""、''或\
修改输出格式(当前):
[root@study ~]# date +%Y-%m-%d 2012-12-12 #显示当前日期,2012年12月12日,注意+号
[root@study ~]# date +%m/%d/%Y 12/12/2012 #另一种显示日期格式,注意+号
[root@study ~]# date "+%Y-%m-%d %H:%M:%S" 2012-12-12 12:22:22 #完整显示,注意这里有空格所以要有""、''或\
三、如何同步两种时间
系统时间同步到硬件时间:
hwclock -w 或 clock -w
硬件时间同步到系统时间:
hwclock -s 或 clock -s
四、文件的时间戳及修改
一个文件有三种时间戳,分别为:
atime(access time),访问时间,每次获取文件内容的时候更新
mtime(modify time),修改时间,每次修改文件内容的时候更新
ctime(change time),改变时间,每次改变文件属性的时候更新
ctime(status time),也有说法为那个字母c为status,当然,能帮助记忆才是最好的
这里有一个概念,文件属性包含哪些?
文件属性包含大概有文件名,文件大小,访问权限,UID,GID,以及三种时间戳等,所以,atime和mtime改变,ctime同样会改变。
如何查看三种时间戳:
1、使用命令 stat filename
2、ls -lu filename 列出文件的 atime
ls -l filename 列出文件的 mtime
ls -lc filename 列出文件的 ctime
如何修改三类时间戳:
使用命令touch
touch 同时修改三类时间为当前时间
touch -a 将atime和ctime变化为当前时间
touch -m 将mtime和ctime变化为当前时间
touch -t [[CC]YY]MMDDhhmm[.SS] filename
将atime和mitme改为指定时间,例如201405272200
touch -d '指定时间' filename
比-t选项更灵活的指定时间修改
touch -r filename1 filename2
文件2的所有时间以文件1为样例修改
针对以1970年1月1日计算当前时间
1、[root@study ~]# date +%s #获取自1970年1月1日来的秒数,假设结果为1408342197
2、将该秒数除以每天的秒数(86400),可通过bc或其他计算机。
3、echo $(($(date +%s)/86400))