在說linux的系統(tǒng)時(shí)鐘之前黎茎,先弄清楚幾個(gè)概念
HZ: 即cpu一秒鐘發(fā)生多少次時(shí)間中斷(cat /boot/config-`uname -r` | grep '^CONFIG_HZ='(通常=1000))
Tick: 1/HZ数初,即每隔多少秒發(fā)送一次時(shí)間中斷
Jiffies: 系統(tǒng)自開機(jī)以來脓斩,已經(jīng)過了多少tick
系統(tǒng)時(shí)鐘的驅(qū)動(dòng)方式
系統(tǒng)時(shí)鐘本質(zhì)上涵紊,就是通過cpu的時(shí)間中斷來實(shí)現(xiàn)的
對(duì)于單調(diào)遞增時(shí)鐘(CLOCK_MONOTONIC)留美,每次時(shí)間中斷來的時(shí)候Jiffies + 1
對(duì)于wall clock時(shí)鐘(CLOCK_REALTIME)竿音,每次時(shí)間中斷來的時(shí)候wall time + Tick
還有另外一種時(shí)間描述冯键,即clock_t菲语,是用來描述進(jìn)程指令的消耗時(shí)間
這種時(shí)間妄辩,不是時(shí)間中斷來驅(qū)動(dòng)的(有另外一種驅(qū)動(dòng)方式,但是是什么不知道山上,反正不是一個(gè)體系的東西眼耀,和wall clock不是一回事)
系統(tǒng)時(shí)鐘的設(shè)置
date(查看系統(tǒng)時(shí)鐘)
date -s 5/11/2015(設(shè)置日期)
date -s 15:35:30(設(shè)置時(shí)間)
date -s "5/11/2015 15:35:30"(一起設(shè)置時(shí)間和日期)
centos 7中的時(shí)區(qū)和時(shí)間設(shè)置
timedatectl status
timedatectl set-timezone Asia/Shanghai
linux系統(tǒng)的啟動(dòng)和運(yùn)行時(shí)間
uptime:
系統(tǒng)命令
cat /proc/uptime:
記錄系統(tǒng)運(yùn)行的時(shí)間
計(jì)算系統(tǒng)啟動(dòng)的時(shí)間:
date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
計(jì)算系統(tǒng)的運(yùn)行時(shí)間:
cat /proc/uptime | awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系統(tǒng)已運(yùn)行:%d天%d時(shí)%d分%d秒\n",run_days,run_hour,run_minute,run_second)}'