Linux 系统时间管理与关机重启命令

一、系统时间管理

在Linux中有硬件时钟与系统时钟等两种时钟。

    硬件时钟:是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。

    系统时钟:是指kernel中 的时钟;所有Linux相关指令与函数都是读取系统时钟的设定。

当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作  

    用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因。

1、系统时钟

 date命令:Linux date命令的用法(转)

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;

-u:显示GMT;

--help:在线帮助;

--version:显示版本信息。

1)查看系统时间     

[root@centos7 ~]# date            
2020年 01月 03日 星期五 10:24:55 CST
[root@centos7 ~]# date +"%Y-%m-%d"
2020-01-03
[root@centos7 ~]# date -d "1 day ago" +"%Y-%m-%d"
2020-01-02

2)修改系统时间

[root@centos7 ~]# date -s "2020-01-01 10:15:30"
2020年 01月 01日 星期三 10:15:30 CST
[root@centos7 ~]# date
2020年 01月 01日 星期三 10:16:01 CST

   reboot 重启之后会失效

2、硬件时钟

     clock 和 hwclock是一个命令

hwclock命令Linux基础命令---hwclock

-r, --show         读取并打印硬件时钟(read hardware clock and print result )

-s, --hctosys      将硬件时钟同步到系统时钟(set the system time from the hardware clock )

-w, --systohc     将系统时钟同步到硬件时钟(set the hardware clock to the current system time )

 

--adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。

--debug  显示hwclock执行时详细的信息。

--directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。

--hctosys  将系统时钟调整为与目前的硬件时钟一致。

--set --date=<日期与时间>  设定硬件时钟。

--show  显示硬件时钟的时间与日期。

--systohc  将硬件时钟调整为与目前的系统时钟一致。

--test  仅测试程序,而不会实际更改硬件时钟。

--utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。

--version  显示版本信息。

1)查看硬件时间

[root@centos7 ~]# hwclock
2020年01月03日 星期五 10时30分44秒  -1.019030 秒

2)修改硬件时间

[root@centos7 ~]# hwclock --set --date="2020-01-02 10:47:00"
[root@centos7 ~]# hwclock
2020年01月02日 星期四 10时47分08秒  -0.869046 秒

3)将系统时钟设置成硬件时间

[root@centos7 ~]# hwclock -w
[root@centos7 ~]# date
2020年 01月 01日 星期三 10:25:18 CST
[root@centos7 ~]# hwclock
2020年01月01日 星期三 10时25分48秒  -1.004697 秒

4)将硬件时钟设置成系统时间

[root@centos7 ~]# date
2020年 01月 01日 星期三 10:38:54 CST
[root@centos7 ~]# hwclock
2020年01月02日 星期四 10时49分15秒  -0.560274 秒
[root@centos7 ~]# hwclock -s
[root@centos7 ~]# date
2020年 01月 02日 星期四 10:49:46 CST

 reboot 重启之后我这边也会失效

 修改时区与修改系统时间配置文件,后面了解

二、关机重启命令及7个启动级别

1、shutdown命令

功能:关闭或重启系统

使用权限:系统管理者。

语法

shutdown [-t seconds] [-rkhncfF] time [message]

参数说明:

-t seconds : 设定在几秒钟之后进行关机程序。

-k : 并不会真的关机,只是将警告讯息传送给所有使用者。

-r : 关机后重新开机。

-h : 关机后停机。

-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。

-c : 取消目前已经进行中的关机动作。

-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。

-F : 关机时,强迫进行 fsck 动作。

time : 设定关机的时间。

message : 传送给所有使用者的警告讯息。

实例:

立即关机后重启系统,和 reboot 效果一样:# shutdown -r now

立即关机后不重启系统,即,关闭系统且关闭电源:# shutdown -h now

10分钟后重启:# shutdown -r +10     

10点钟关机:# shutdown -h 10:00    

系统在5分钟内关机,并告诉所有用户:# shutdown -h +5 "Warning! The system will halt after 5 minutes."

2、reboot命令

若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代

功能:用于重启系统

使用权限:所有用户可使用

语法

reboot [-n] [-w] [-d] [-f] [-i]

参数:

-n : 在重开机前不做将记忆体资料写回硬盘的动作

-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里

-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)

-f : 强迫重开机,不呼叫 shutdown 这个指令

-i : 在重开机之前先把所有网络相关的装置先停止

实例:

重新启动:# reboot

3、halt命令

若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。

功能:用于重启系统

使用权限:所有用户可使用

语法

halt [-n] [-w] [-d] [-f] [-i] [-p]

参数:

-n : 在关机前不做将记忆体资料写回硬盘的动作

-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里

-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令

-i : 在关机之前先把所有网络相关的装置先停止

-p : 当关机的时候,顺便做关闭电源(poweroff)的动作

实例:

关闭系统:# halt

关闭系统并关闭电源:# halt -p

4、poweroff 命令

功能:关闭计算机操作系统并且切断系统电源。

使用权限:所有用户可使用

语法

poweroff [参数]

参数:

-n:关闭操作系统时不执行sync操作;

-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;

-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;

-f:强制关闭操作系统;

-i:关闭操作系统之前关闭所有的网络接口;

-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

实例:

关闭系统后关闭电源:# poweroff -p

5、init命令(telinit命令使用一样的语法)

init命令详解:https://www.cnblogs.com/machangwei-8/p/10392118.html

功能:用于关闭系统

使用权限:超级管理员使用

语法

init [0-6Ss]

参数:

0-6:表示系统的7个运行级别

S或s:配合开机执行级别1时使用,表示开机后不参考/etc/inittab文件

实例:

重启系统:#init 6

关机:init 0

6、7个启动级别

命令:init 0-6

作用:切换系统运行级别

0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的

1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录

2 多用户模式,没有NFS和网络支持

3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式

4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置

5 图形化模式,登陆后进入图形GUI模式,X Window系

6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启

注意:万万不能把默认设为 0 或者 6。因为0代表关机,6代表重启。常用级别为 3 和 5。

1)查看当前默认下运行的级别:

     这两个命令都可以

[root@centos7 ~]# runlevel 
N 3
[root@centos7 ~]# systemctl get-default
multi-user.target

2)设置默认的运行级别(常用级别)

设置默认第三启动级别( multi-user.target表示第 3级):# systemctl set-default multi-user.target

设置默认第五启动级别(graphical.target表示第5级):# systemctl set-default graphical.target

结论:

Linux系统中的关机命令:

命令 参数列表 使用权限
init 0 root
shutdown -h now root
halt -p all user
poweroff -p all user

 

 

 

 

 

Linux系统中的重启命令:

命令 参数列表 使用权限
init 6 root
shutdown -r now root
reboot 可选项 all user

更详细的可参考上面标注的文章

 

     站在前辈的肩膀上,每天进步一点点

ends~

发布了248 篇原创文章 · 获赞 59 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_42402854/article/details/103820831