我是靠谱客的博主 无语溪流,最近开发中收集的这篇文章主要介绍Linux学习:任务调度,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

crond 任务调度

crontab 进行定时任务的设置

任务调度:是指系统在某个时间执行特定的命令或程序。

任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描

个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份

  • 基本语法:crontab [选项]

  • 常用选项:

    1. -e 编辑crontab定时任务

    2. -l 查询crontab任务

    3. -r 删除当前用户所有的crontab任务

  • 快速入门

    设置任务调度文件:/etc/crontab

    设置个人任务调度。执行crontab -e命令

    接着输入任务到调度文件

    如:*/1 ls -l /etc/ > /tmp/to.txt

    意思是说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令

  • 参数细节说明

    5个占位符说明

    项目含义范围
    第一个*一小时当中的第几分钟0-59
    第二个*一天当中的第几个小时0-23
    第三个*一个月当中的第几天1-31
    第四个*一年当中的第几月1-12
    第五个*一周当中的星期几0-7(0和7都代表星期日)
  • 特殊符号说明

特殊符号含义
*代表任何时间。比如第一个*就代表一小时中每分钟都执行一次的意思
代表不连续的时间。比如"0 8,12,16 ***"命令,就代表在每天的8点0分,12点10分,16点0分都执行一次命令
-代表连续的时间范围。比如"0 5 ** 1-6"命令,代表在周一到周六的凌晨5点0分执行命令
*/n代表每隔多久执行一次。比如"*/10 * * * *"命令,代表每隔10分钟就执行一遍命令。

案例1:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中

*/1 * * * * date >> /tmp/mydate

案例2:每隔1分钟,就将当前的日期和日历信息,追加到 /tmp/mycal 文件中

步骤:(1)vim /home/my.sh 写入内容 date >> /home/mycal 和 cal >> /home/mycal

(2)给my.sh增加执行权限,chmod u+x /home/my.sh

(3)crontab -e 增加*/1 * * * * /home/my.sh

  • crond 相关指令

    1. crontab -r:终止任务调度

    2. crontab -l:列出当前有哪些任务调度

    3. service crond restart 重启任务调度

at定时任务

  1. at命令是一次性定时计划命令,at的守护进程atd会以后台模式运行,检查作业队列来运行。

  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业

  3. at命令是一次性定时计划命令,执行完一个任务后不再执行此任务了

  4. 在使用at命令的时候,一定要保证atd进程的启动

ps -ef 检查任务进程

ps -ef | grep atd 过滤发现atd是否运行

  • at命令格式

    at [选项] [时间]

    ctrl + d 结束at命令的输入

    ctrl + d 输入两次

    输错了ctrl + backspace 键删除

at时间定义

at指定时间的方法:

  1. 在当天的hh:mm(小时:分钟)式的时间指定。加入时间已经过去,第二天执行。例:04:00

  2. 使用midnight(深夜),noon(中午),teatime(喝茶,下午四点)

  3. 采用12小时计时制,在时间后面加上AM(上午)或者PM(下午)。例:12pm

  4. 指定命令执行的具体日期,指定格式为month day(月 日)或者mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定的时间后面。例:04:00 2021-03-1

  5. 相对计时法。格式为:now + count time-units,now是当前时间,count是时间的数量,time-units是时间单位。例:now + 5 minutes

  6. 直接用today、tomorrow 来指定完成命令的时间

案例1:2天后的下午5点执行 /bin/ls/home

at 5pm + 2 days 回车

/bin/ls/home +两次ctrl + d

案例2:atq命令来查看系统中有没有执行的工作任务

atq

案例3:明天17点钟,输出时间到指定的文件中 比如/root/date100.log

at 5pm tomorrow 回车

date > /root/date100.log 两次CTRL+d

案例4:2分钟后,输出时间到指定的文件中 比如/root/date200.log

at now + 2 minutes 回车

date > /root/date200.log 两次ctrl + d

案例5:删除已经设置的任务

atrm + 编号

最后

以上就是无语溪流为你收集整理的Linux学习:任务调度的全部内容,希望文章能够帮你解决Linux学习:任务调度所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部