本文共 1807 字,大约阅读时间需要 6 分钟。
在Linux系统中,时间管理是一个重要但容易被低估的配置问题。Linux系统时间与硬件时间(或称BIOS时间)之间的区别可能会让一些新手感到困惑,因此本文将详细解释两者之间的差异以及相关的操作命令。
系统时间是我们常用date
命令查看的时间,它通常是Linux系统中所有时间相关调用(除非是直接访问硬件时间)的基础。重要的是,系统时间由用户手动或自动设置,可以按照时区和时刻进行调整。该时间直接来源于硬件时间,在系统启动时会被初始设定。
硬件时间存储于主板的BIOS中,由主板电池维持运行。硬件时间在系统启动时被读取,并根据它来设置系统时间。需要注意的是,系统启动时从硬件时间设置系统时间可能会涉及时区转换,具体取决于系统的设置。
要查看当前系统时间,可以使用date
命令:
[root@surfer ~]# date2018年06月26日 星期二 10:09:21 CST
要更改系统时间,可以使用以下命令:
[root@surfer ~]# date -s 10:10:102018年06月26日 星期二 10:10:10 CST
如果需要同时设置日期,可以用双引号包裹日期和时间:
[root@surfer ~]# date -s "2018/8/8 10:00:00"2018年08月08日 星期三 10:00:00 CST
硬件时间通常通过hwclock
或者clock
命令查看:
[root@surfer ~]# hwclock2018年06月26日 10:13:02. -0.805503 秒
[root@surfer ~]# clock2018年06月26日 10:13:07. -0.507462 秒
如果需要将硬件时间写入系统时间(以备日常同步),可以使用以下命令:
[root@surfer ~]# hwclock -s
[root@surfer ~]# hwclock -w
ntpdate
Linux系统可以通过ntpdate
进行时间同步,确保时间与标准时间服务器保持一致。检查是否安装了ntpdate
:
[root@surfer ~]# rpm -qa | grep ntpdate
如果没有安装,可以运行:
[root@surfer ~]# yum install ntpdate
时间同步命令如下:
[root@surfer ~]# ntpdate \ http://example.comským
crontab
是 Linux 的任务调度命令,默认运行在每分钟、每小时、每天等时间点。通过vi /etc/crontab
可以查看crontab文件,了解定时任务的书写格式。
crontab文件的每个字段可以使用特殊字符,例如:
*
:表示所有值,
:表示列表值-
:表示范围/
:表示频率例如:
[root@surfer ~]# crontab -l* * * * */usr/local/gse/agent/bin/gsectl watch
编辑crontab文件时,可以使用:
[root@surfer ~]# crontab -e
crontab
默认编辑当前用户的crontab文件。
添加定时任务如下:
[root@surfer data]# crontab -e */1 * * * * echo"hello world">/data/code.txt
一分钟后查看 /data/code.txt
文件:
[root@surfer data]# cat code.txthello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world
这个定时任务会在每分钟执行一次,并将输出写入指定文件。这是优化后的任务定义,它确保了每分钟都会生成新的内容。
转载地址:http://djglz.baihongyu.com/