linux定时器的使用

linux定时器的使用 linux毫秒级定时器怎么用?

systemd定时器使用技巧?

linux毫秒级定时器怎么用?

定时器任务在 Linux 系统中是一项很普遍的应用,例如定期清理文件,在嵌入式系统则可以定时调用任务采集数据等。Cron 是一个广为人知的定时计划任务管理器,但随着systemd 兴起,systemd timers 也逐渐开始取代传统的 cron。本文就将基于Toradex Linux BSP在Colibri iMX8X 上如使用 systemd 定时器。

Systemd 定时器从触发时间上可以分为两种:

• 单调定时器:从一个特定的时间开始后过一段时间触发,通常可以是系统启动或者systemd 服务单元执行的开始时间

• 实时定时器:在某个特定时间触发,一般指时钟时间,这个就类似于cron定时任务

两种定时满足不同要求的任务,例如需要在某个明确并固定的时间来执行任务,如每周日晚上12点清理日志文件,则可以选择实时定时器。而对于有些无法实现预测执行时间,通常是要在系统启动后才定期执行,如某个任务在启动后每隔10分钟采样传感器数据,由于不确定系统启动时间,所有可以采用单调定时器。或者同时使用两个定时器功能。

Systemd 定时器的配置文件可以分为两部分,定时器单元以 .timer 后缀的systemd单元文件,以及服务单元以 .service 后缀的systemd单元文件。每个 .timer 文件通常对应一个同名的 .service 文件。定时器单元 .timer 文件中的 [Timer] 定义了该定时器何时以及如何触发。该定时器被触发后,执行对应的服务单元 .service,其中的 [Service] 定义了最终被执行的脚本或者应用。

服务器如何实现定时任务?

这个要看你的服务器是什么类型了,如果是Windows服务器,则直接创建定时任务即可,如果是Linux服务器,则需要开启crontab定时任务,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下:

01

Windows服务器

这里操作非常简单,在开始搜索栏输入“计划任务”,打开对话框窗口,然后直接创建基本任务即可,这里程序自带有任务创建向导,一步一步按照流程往下走即可,包括任务名称、触发时间、启动程序(程序或脚本)等,都可以自行设置,非常简单:

设置完成后,点击“完成”按钮,如果在任务列表可以看到刚才新建的任务,则说明计划任务创建成功,接着就可以定时触发执行了,删除的话,直接右键删除即可:

02

Linux服务器

这里需要开启crontab定时任务,运行“crontab -e”命令,直接编辑定时任务即可,一行需要设置6个字段信息,分别是分、时、天、月、星期和执行命令(脚本或程序),例如,“0 1 * * * 脚本或程序路径”表示每天凌晨1点执行1次定时任务,这里网上参考资料非常丰富,可以搜一下,介绍的非常详细:

编辑完成定时任务后,crond服务会自动加载运行,这里你也可以查看一下日志文件,确定定时任务是否正常执行:

至此,我们就完成了Windows服务器和Linux服务器设置定时任务。总的来说,整个过程非常简单,只要你熟悉一下上面的操作过程,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。