定时器类型:
- 单调定时器:即从一个时间点过一段时间后激活的定时任务
- 实时定时器:通过日历事件激活定时任务。
匹配单元文件:
每个.timer文件所在目录都要有一个匹配的.service文件。 .timer文件用于激活并控制.service文件
创建单调定时器
- (一)编写任务脚本
- (二)编写一个配套服务单元文件
- (三)编写一个定时器单元文件
- (四)测试
- (五)查看
学习目的:
1.通过学习如何创建单调定时器实例,可以深入了解定时器的工作原理,包括定时器的创建、设置和触发机制,以及定时器如何在程序中实现定时操作。
2.单调定时器使用单调时钟进行计时,不受系统时间更改的影响,学习如何创建单调定时器实例可以帮助您深入理解操作系统时间相关的知识
3.许多应用程序需要定时执行某些操作,例如定时任务、定时检测等,学会创建单调定时器实例可以帮助您更好地实现这些功能
4.许多Linux应用程序需要定时执行某些操作,例如定时任务、定时检测等,学会创建单调定时器实例可以帮助您更好地实现这些功能,提高程序的效率和可靠性
5.实时系统对时间要求非常严格,学会创建单调定时器实例可以为您将来开发实时系统打下基础,了解Linux系统中时间相关的知识和技术
总的来说,学习如何在Linux操作系统中创建单调定时器实例可以帮助您深入理解系统编程、提高系统编程技能,实现精确的时间控制,解决实际应用中的定时需求,并为将来开发实时系统做好准备。这对于希望从事系统级编程、嵌入式系统开发或实时系统开发的开发人员来说是非常有益的。
在编写前我们所需了解的相关知识
编写脚本的好处:
1. 提高工作效率:脚本可以自动化完成重复性、繁琐的操作,节省人力资源,并且执行速度快。
2. 减少错误:脚本代码可以减少人为的错误,确保工作的准确性和一致性。
3. 简化工作流程:脚本可以将复杂的工作流程简化为简单的几行代码,提高工作的可操作性。
4. 可重复性:脚本可以在需要时随时执行,确保任务的重复执行。
5. 可维护性:脚本的代码结构清晰,易于维护和修改。
需要注意的地方:
1. 安全性:脚本中可能包含敏感信息,比如密码等,需要注意在使用和分享脚本时保护好相关信息。
2. 可靠性:脚本需要经过充分的测试,确保其功能的正确性和稳定性。
3. 可读性:良好的命名规范和注释可以提高代码的可读性,让其他人能够容易理解和维护脚本。
4. 兼容性:脚本需要考虑在不同操作系统、不同软件环境下的兼容性问题,使其能够广泛应用。
5. 错误处理:需要考虑脚本执行过程中可能出现的错误,并处理这些错误,确保脚本的稳定性和可靠性。
创建步骤
(一)编写任务脚本
1.编写时间写入日志文件的脚本
(1)创建一个脚本
(2)编写脚本内容
(3)操作
vim system.sh #创建一个单元文件
#开始编写脚本
#!/bin/bash
echo `date` >> /root/system.txt
cat system.sh
在虚拟机上的操作:
2.给脚本增加可执行权限
chmod +x system.sh
#给脚本增加可执行权限
在虚拟机上的操作:
3.执行刚刚编写的脚本
. system.sh
#执行脚本文件
在虚拟机上的操作:
4.查看日志文件,脚本执行成功
cat system.txt
在虚拟机上的操作:
(二)编写一个配套服务单元文件
5.创建一个boot_backup.service文件,保存在/etc/systemd/system目录中
(1)创建一个文件
(2)编写文件内容
cd /etc/systemd/system #进入system目录
vim boot_backup.service #创建这个文件
cat boot_backup.service #查看文件内容
[Unit]
Description=Backup boot
[Service]
ExecStart=bash /root/system.sh
Type=simple
在虚拟机上的操作:
(三)编写一个定时器单元文件
6.编写一个定时器单元文件
命名为boot_backup.timer,保存在/etc/systemd/system目录中
(1)创建一个文件
(2)编写脚本内容
vim boot_backup.timer #创建文件
cat boot_backup.timer #查看文件内容
[Unit]
Dsecription=Run boot weekly and on boot
[Timer]
AccuracySec=1us
OnUnitActiveSec=3s
[Install]
WantedBy=multi-user.target
在虚拟机上的操作:
(四)测试
7.测试
systemctl daemon-reload
systemctl start boot_backup.timer #启动
systemctl status boot_backup.timer #查看是否运行
在虚拟机上的操作:
(五)查看
8.查看日志
cd #进入root目录
tail -f system.txt #查看日志
在虚拟机上的操作: