制作网站培训,网站商品展示页怎么做,电子商务网站建设与管理课程心得,wordpress建单页面论坛定时器使用
先是看到一段使用Linux Sevice服务的脚本#xff0c;意外发现在ExecStart启动脚本中#xff0c;它利用无限循环做定时任务的事情#xff0c;非常突兀#xff01;
觉得既然用得了Linux Service#xff0c;那么#xff0c;与之配套的cron定时器服务是否更应该…定时器使用
先是看到一段使用Linux Sevice服务的脚本意外发现在ExecStart启动脚本中它利用无限循环做定时任务的事情非常突兀
觉得既然用得了Linux Service那么与之配套的cron定时器服务是否更应该用起来显得更专业呢 另外看到有人使用watch -n 10 pkill procName来实现定时器测试输入动作。
本来用作持续观察命令输出的命令竟然也可以另做它图作为定时器来使用也是非常有趣的
那么在Linux的世界中应该如何来使用定时任务呢尝试记录下
定时任务使用方法总结
方式说明cron服务簇通过系统定时服务进行定时器任务的使用watch通过-n 参数指定时间以及提供另类的持续观察命令达到定时执行效果。对于简单测试场景确实非常实用无限循环脚本通过sleep或者比较系统时间进行模拟。类似使用独立线程来模拟定时器好处是不容易受到其它因素干扰但坏处也是明显的
使用cron定时系统服务
建议将定时任务配置文件放入/etc/cron.d和/etc/cron.{daily,weekly,monthly}目录下。
配置方法参考系统对应目录下已有部署定时任务
envsubst对模版文件进行脚本变量替换
在配置文件生成时可以结合envsubst命令将定时任务配置模版文件进行变量替换 export SomeEnvsomeValueenvsubst config.template configcron与anacron的勾连
在原有设计上anacron用来实现更长周期的定时器任务例如{daily,weekly,monthly}级别的定时器任务。
但现在Linux发行版一般都会将二者合二为一通过run-parts相互调用勾连起来
直接在/etc/crontab配置文件中
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly勾连在/etc/cron.d/0hourly和/etc/cron.hourly/0anacron配置文件中
# /etc/cron.d/0hourly
# run-parts
01 * * * * root run-parts /etc/cron.hourly# /etc/cron.hourly/0anacron
/usr/sbin/anacron -s注 某些Linux发行版存在/etc/anacrontab配置的文件Linux发行版可以在配置文件中通过START_HOURS_RANGE参数指定长周期任务在一天内什么时间段执行
附录
# 一行无限循环的定时脚本
while true; do sleep 1; echo Hello World!; done参考
cronanacronenvsubst