linux 系统文件类型、系统安装时间、系统启动时间、系统运行时间、设置及显示时间、系统时间和硬件时间
系统文件类型:
1) $mout
2) df -l:仅列出本地文件系统;-h (--human-readable);-T:文件系统类型
$df -lhf
3) file -s (--special-files)
$file -s /dev/sda1
4)$parted
(parted)print list
(parted)q
5) $cat /etc/fstab
系统安装时间:
tune2fs文件系统自检,可以指定自检周期及方式。
$ tune2fs -l /dev/sda1 | grep create
系统启动时间:
1) $ uptime
2) $ cat /proc/uptime
输出的第一个为系统启动到现在的时间(s),第二个为系统空闲时间。
who -b 查看最后一次系统启动的时间。
[root@localhost ~]
# who -b
system boot 2017-10-27 14:32
last reboot可以看到Linux系统历史启动的时间。
系统运行时间:
who -r 查看当前系统运行时间
设置及显示时间:
时间戳与时间之间的换算:
将当前时间转化为时间戳:
# date +%s 1470817393
将时间戳转化为可读时间:
# date -d @1470817201
2016年 08月 10日 星期三 16:20:01 CST
# date -d @1470817201 +"%Y-%m-%d %H:%M:%S" 2016-08-10 16:20:01
将指定时间转化为时间戳:
# date -d '2013-2-22 22:14' +%s 1361542440
本文转自 http://fengzhiboke.blog.163.com/blog/static/203938057201221881833453/ 感谢作者
先说Debian/Ubuntu和windowsxp/7两者时间总不一样的问题:
一种就是让Windows把硬件时间当作UTC,与Linux/Unix/Mac保持一致。另一种就是让Linux/Unix/Mac把系统时间当作本地时间,与Windows保持一致。 设置如下:
---==很拽的分割线==-------=============------很拽的分割线------======-----
一 在Windows下进行如下修改:
在 注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\
下中添加一项数据类型为REG_DWORD,名称为RealTimeIsUniversal,值设为1 的键值。
或者直接使用下如下批处理进行修改:
------------------------------------------------------------------------
@echo off
color 0a
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
echo.
echo 已让Windows识别存贮在主板CMOS内的时间为格林威治标准时间(GMT),即系统根据CMOS时间和设置的时区来确定当前系统的时间。
echo.
pause
---------------------------------------------------------------------------
二 或者 在Ubuntu下进行如下修改: 【推荐】
Ubuntu中不使用UTC时间,而启用本地时间,需要修改 /etc/default/rcS ,修改动作如下:
# 注释掉原来的设定:UTC=yes
# 变更为下面的内容...
UTC=no
三 更多信息
世 界协调时间(Universal Time Coordinated,UTC),GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八 区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可.
UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整。
GMT(Greenwich Mean Time)是格林尼治平时:由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到 地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太 阳时。在格林尼治子午线上的平太阳时称为世界时(UT0),又叫格林尼治平时(GMT)。
由于两个系统设定时间时以主板CMOS内的时间为依据,但却有不同的时间计算标准。所以导致了系统时间的纠纷问题。
Linux和苹果操作系统以当前主板CMOS内时间做为格林威治标准时间,再根据系统设置的时区来最终确定当前系统时间(如时区设置为GMT+08:00北京时间时以及当前CMOS时间为03:00,那么系统会将两个时间相加得出显示在桌面的当前系统时间为11:00)。
Windows 操作系统却直接把CMOS时间认定为当前显示时间,不根据时区转换。这样每调整一次系统时区,系统会根据调整的时区来计算当前时间,确定后,也就同时修改 了CMOS内的时间(即每调整一次时区,设置保存后,CMOS时间也将被操作系统改变一次,注意不同操作系统调整时间后,也会同时改变CMOS时间,这一 点是共通的)。
这里我们且不论两种时间计算标准的好差,而仅让Windows认定CMOS时间为格林威治标准时间来消除操作系统之间认定时间的差异,从而解决Windows操作系统与不同操作系统并存时出现的时间矛盾。
也就是说,UTC即Universal Time Coordinated,协调世界时
GMT即Greenwich Mean Time,格林尼治平时
在这里,你可以把UTC认为是GMT+0。
Windows(XP和VISTA)和(Linux/Unix/Mac)缺省看待系统硬件时间的方式是不一样的:
* Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。
* Linux/Unix/Mac把硬件时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。
这 样,当PC中同时有多系统共存时,就出现了问题。假如你的Ubuntu和WindowsXP中设置的时区都为北京时间东八区,而你在Ubuntu中把当前 系统时间更改为9:00AM。则此时硬件中存储的实际是UTC时间1:00AM。这时你重启进入Windows后,你会发现windows系统中显示的时 间是1:AM,比Ubuntu中慢了八个小时。同理,你在Windows中更改或用网络同步了系统时间后,再到Ubuntu中去看,系统就会快了8小时。 在实行夏令时的地区,情况可能会更复杂些。原因知道了,那怎么来解决这种冲突呢。一种就是让Windows把硬件时间当作UTC,与Linux/Unix /Mac保持一致。另一种就是让Linux/Unix/Mac把系统时间当作本地时间,与Windows保持一致。
Debian/Ubuntu下配置ntp同步时间(时间设定相关与时间同步)
服务器的时间很重要,前几天我reboot一下系统,发现启动的时候有提示时间不正确。
今天准备把公司的服务器时间设定一下,于是在网上查看linux时间的相关资料,发现linux的时间比较复杂。
首先介绍三个名词:
UTC Universal Time Coordinated,世界标准时间
GMT Greenwich Mean Time,格林尼治时间
CST China standard Time ,中国标准时间
Linux 时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。
查看系统时间的命令有:
#date
查看硬件时间的命令有:
#hwclock
设置系统时间
# date --set “07/07/06 10:19" (月/日/年 时:分:秒)
设置硬件时间
# hwclock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
注:用这种方式设定时间我没有设定过,因为这样设定的时间也不够准确
硬件时间和系统时间的同步
重新启动系统,系统时间会读取硬件时间,实现同步,但是在不重新启动的时候,需要用hwclock命令实现同步。
硬件时钟与系统时钟同步:
把硬件时间写入系统时间
# hwclock --hctosys(hc代表硬件时间,sys代表系统时间)
把系统时间写入硬件时间
# hwclock --systohc
同步时间还有一种方式就是读取专门的时间服务器上的时间,比如伦敦时间,中国时间等。
可以借助ntpdate工具来完成
#apt-get install ntpdate
然后同步时间
#ntpdate cn.pool.ntp.org
此时系统时间已经和网络时间同步,
然后把系统时间写入硬件时间
#hwclock --systohc
对于时间还有一个重要的问题,就是时区的设定
debian linux有提供一个命令轻松搞定时区设定,
#tzselect (第一次知道,我知知道的是 # dpkg-reconfigure tzdata )
然后一步一步选择下去就可以了。
==================
到root用户下面:
#aptitude install ntpdate
因为我们不需要架设ntp服务器,所以只要个客户端来同步时间就行。可以看得查到个软件就是ntpdate。
下载并自动安装。
安装完以后使用crontab来自动更新时间:
#crontab -e
添加如下行:
*/30 * * * * /usr/sbin/ntpdate time.cuit.edu.cn
这行的意思是每30分钟自动与时间服务器time.cuit.edu.cn来进行同步 保存退出即可。
随着时间的推移, 计算机的时钟会倾向于漂移。 网络时间协议 (NTP) 是一种确保您的时钟保持准确的方法。
如 果可以你的局域网可以访问互联网,那么不必安装一台专门的ntp服务器,只需安装ntp的客户端软件到互联网上的公共ntp服务器自动修正时间即可。如果 不能访问互联网,而要将各个计算机时间的统一,就需要自己架设一台ntp服务器。无论怎样,请首先保证你的时区设置是正确的!(debian下使用 tzconfig设置时区)
对于debian,请使用root权限运行如下命令:
apt-get install ntpdate
其他发行版请安装相应的包格式,实在没有就到www.ntp.org下载编译源码。
apt-get方式安装完成后,将创建“/etc/init.d/ntpdate”脚本,并自动将其加入开机运行的服务中。其配置文件为
“/etc/default/ntpdate”,你可以修改如下内容,使系统在启动时自动将系统时间同步cn.pool.ntp.org或pool.ntp.orgntp服务器
NTPSERVERS="cn.pool.ntp.org pool.ntp.org"
如果你不想等到下次开机再修正你的系统时间,可以立即使用root权限执行如下命令使你的系统时间变更为准确的北京时间(如果你的时区设置为chongqing)
matrix:~# ntpdate cn.pool.ntp.org
19 Feb 22:06:57 ntpdate[20834]: adjust time server 218.4.91.228 offset 0.129096 sec
cn.pool.ntp.org是位于中国的公共ntp服务器,你可以到“www.pool.ntp.org”寻找一个离你最近的ntp公共服务器(当然也可以是你自己架设的ntp服务器!)。你也可以将上述语句加入root用户的crontab中使其定期修正系统时间。