当前位置: 首页 > news >正文

Linux定时同步系统时间到硬件时间

Linux定时同步系统时间到硬件时间

1. 系统时间、软件时间

系统时间 (System Time): 一般说来就是我们执行 date命令看到的时间,linux系统下所有的时间调 用(除了直接访问硬件时间的命令)都是使用的这个时间。

硬件时间(Hardware Time): 主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读 取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能存在 时区换算,这要视具体的系统及相关设置而定)。

①. 系统时间

获取系统时间

# 查看当前系统时间
root@debian7:~# date
2024年 07月 24日 星期三 11:00:43 CST
root@debian7:~#

设置系统时间

# 仅设置时间
root@debian7:~# date -s 11:05:06
2024年 07月 24日 星期三 11:05:06 CST# 设置年月日时分秒
root@debian7:~# date -s "2024-07-24 11:07:20"
2024年 07月 24日 星期三 11:07:20 CST

②. 硬件时间

获取硬件时间

# 查看当前机器硬件时间
root@debian7:~# hwclock
2024年07月24日 星期三 11时08分55秒  -0.146566 seconds

将系统时间同步到硬件时间

# 同步硬件时间
root@debian7:~# hwclock --systohc

2. Linux定时任务配置

在Linux系统下,一般都用系统自带的Cron 完成各类任务的调度和执行。Cron任务一般通过 crontab 文件进行配置任务参数。

crontab配置文件通常位于 /etc/crontab目录下。

①. Crontab格式简介

/etc/crontab 文件内容如下:

root@debian7:~# cat /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

关键字说明:

  • m : 表示分钟;
  • h : 表示小时;
  • dom : 表示日(day of month);
  • mon : 表示月;
  • dow : 表示周 (day of week);
  • user : 执行用户;
  • command : 执行脚本或者命令。

②. 添加定时任务

编辑 "/etc/crontab" 文件,增加《系统时间回写硬件时间》任务。

root@debian7:~# cat /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/5 *   * * *   root    (hwclock --systohc)
#

其中 【*/5 * * * * root (hwclock --systohc)】是新加任务,每隔5分钟执行一次《系统时间回写硬件时间 》任务。

配置完后,重启cron任务。

③. Cron任务管理

  • 查看状态
service cron status
root@debian7:~# service cron status
[ ok ] cron is running.
  • 重启
service cron restart
root@debian7:~# service cron restart
[ ok ] Restarting periodic command scheduler: cron[....] Stopping periodic command scheduler: cron.
[ ok ] Starting periodic command scheduler: cron.
  • 停止
service cron stop
  • 启动
service cron start

④. 验证功能

调整系统时间,过5分钟后看系统硬件时间

测试过程:

root@debian7:~# 
root@debian7:~# hwclock                                  #1. 先查看固件时间 
2024年07月24日 星期三 11时47分53秒  -0.989923 seconds
root@debian7:~# 
root@debian7:~# date
2024年 07月 24日 星期三 11:47:56 CST                      #2. 查看系统时间
root@debian7:~# 
root@debian7:~# date -s 12:00:00                         #3. 将系统时间向前调了12分钟左右
2024年 07月 24日 星期三 12:00:00 CST
root@debian7:~# 
root@debian7:~# date
2024年 07月 24日 星期三 12:00:03 CST                      #4. 系统时间已被调整
root@debian7:~# 
root@debian7:~# hwclock                                  #5. 过几分钟后,查看固件时间,固件时间已被回写
2024年07月24日 星期三 12时01分20秒  -1.025367 seconds
root@debian7:~# 
root@debian7:~# date
2024年 07月 24日 星期三 12:01:21 CST
root@debian7:~# 
http://www.lryc.cn/news/408568.html

相关文章:

  • 网络编程——wireshark抓包、tcp粘包
  • el-table合计行更新问题
  • ChatGPT:数据库不符合第二范式示例
  • 27、美国国家冰雪中心(NSIDC)海冰密集度月数据下载与处理
  • vite环境下使用bootstrap
  • Laravel视图渲染封装
  • C++学习补充2:MySQL select 查询
  • uni-app声生命周期
  • 排序算法--堆排序
  • iPhone 在 App Store 中推出的 PC 模拟器 UTM SE
  • FastAPI删除mongodb重复数据(数据清洗)
  • 移动UI:排行榜单页面如何设计,从这五点入手,附示例。
  • 如何解决 uni-app 项目中 “文件查找失败:‘crypto-js‘“ 的问题
  • Apache DolphinScheduler 3.2.2 版本正式发布!
  • 汇川CodeSysPLC教程03-2-6 ModBus TCP
  • 【Python机器学习】决策树的构造——划分数据集
  • Pip换源使用帮助
  • 力扣1089复写0
  • 10 VUE Element
  • 独立游戏《星尘异变》UE5 C++程序开发日志8——实现敏感词过滤功能(AC自动机)
  • 使用 Swagger 在 Golang 中进行 API 文档生成
  • Pip换源实战指南:加速你的Python开发
  • 【数据结构】常用数据结构的介绍:理解与应用
  • 【优秀python系统毕设】基于Python flask的气象数据可视化系统设计与实现,有LSTM算法预测气温
  • 【康复学习--LeetCode每日一题】2951. 找出峰值
  • PYTHON学习笔记(八、字符串及的使用)
  • 文件共享功能无法使用提示错误代码0x80004005【笔记】
  • FTP(File Transfer Protocal,文件传输协议)
  • DevEco Studio中使用Qt,编写HarmonyOS程序
  • 基于单文档的MFC图像增强