ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

任务计划

2019-11-11 16:00:10  阅读:255  来源: 互联网

标签:run daily cron etc 任务 计划 运行


任务计划

未来某一时间点执行一次任务
at    指定时间点,执行一次任务
batch 系统自行选择空闲时间执行此处指定的任务

周期性运行任务
cron

at [option] TIME
-l:列出指定队列中等待运行的作业;相当于atq
-d:删除指定的作业;相当于atrm
-c:查看具体作业任务
-f /file:指定的文件中读取任务
TIME:定义什么时候进行at这项任务的时间
HH:MM[YYYY-mm-dd]

touch /data/file1 > at 14:10

执行方式:
1,交互式
2,输入重定向
3,at -f 文件

at队列存放在/var/spool/at目录中
控制用户是否能执行at任务:
/etc/at.{allow,deny}
at依赖于atd服务




周期性任务计划cron

相关的程序包:
cronie:主程序包,提供crond守护进程及相关辅助工具
cronie-anacron:cronie的补充程序,用于监控cronie任务执行状态,如果任务在过去该运行的时间点没有正常运行,则anacron会随后启动一次次任务

系统cron任务:系统维护作业 /etc/crontab
用户cron任务:crontab命令
日志:/var/log/cron

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
10 21 * * * root /bin/echo "Howdy"
晚上9点10分运行echo命令

时间表示法:
1,特定值
2,*
3,离散取值 #,#,#
4,连续取值 #-#
5,定义步长 /#:#即为步长

时间格式:
@reboot 重新启动后运行一次
@yearly

系统的计划任务:
/etc/crontab 配置文件
/etc/cron.d/ 配置文件
/etc/cron.hourly/ 脚本
/etc/cron.daily/ 脚本
/etc/cron.weekly/ 脚本
/etc/cron.monthly/ 脚本

anacron系统
配置文件:/etc/anacrontab,负责执行/etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly中系统任务
1    5    cron.daily        nice run-parts /etc/cron.daily
字段1:如果在这些日子里没有运行这些任务
字段2:在重新引导后等待这么多分钟后运行它
字段3:任务识别器,在日志文件中标识
字段4:要执行的任务

管理临时文件
CentOS7使用systemd-tmpfiles-setup服务实现
CentOS6使用/etc/cron.daily/tmpwatch定时清除临时文件

crontab [-u user =] [-l|-r|-e][-i]
-l:列出所有任务
-e:编辑任务
-r:移除任务
-i:以交互式模式移除指定任务
控制用户只需计划任务:
/etc/cron.{allow,deny}

运行结果的标准输出和错误以邮件通知给相关用户
(1) > /dev/null
(2) &> /dev/null
%有特殊用途;如果在命令中要使用%,需要转义,放置在单引号中,则可不用转义

/usr/bin/run-parts:一次性运行文件夹中的脚本
* * * * * /usr/bin/run-parts /data/scripts --每分钟运行一次/data/scripts目录下的所有脚本

(1)如何在秒级别运行任务?
sleep 0.1
usleep 1000 微秒
每6秒执行一次
方法一:小脚本实现
#!/bin/bash
while :;do
    /var/script/run.sh
    sleep 6
done
方法二:
* * * * * sleep 6;/var/script/run.sh >> log.txt

 

 

 

标签:run,daily,cron,etc,任务,计划,运行
来源: https://www.cnblogs.com/wangyanqiang/p/11835779.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有