52、任务计划管理

时间:2022-11-11 16:22:18
at命令一次性任务计划

由包at提供服务器,依赖于atd服务,需要启动才能实现at任务,at队列存放在/var/spool/at目录中,执行任务时PATH变量值和当前定义任务的用户身份一致。

命令格式: at [option] time

常用选项
-V 显示版本信息
-t time 时间格式 [[CC]YY]MMDDHHMM[.ss]
-l 列出指定对立中等待运行的作业,相当于atq
-d 删除指定作业,相当于atrm
-c 查看具体作业任务
-f /path/file 指定文件中读取任务
-m 当任务被完成之后,将给用户发送邮件,即没有标准输出
例子
Minute at now + 5 minutes 在5分钟后运行
Hour at now + 1 hour 在1小时后运行
Days at now + 3 days 在3天后运行
Weeks at now + 2 weeks 在两周后运行
Fixed at midnight 任务在午夜运行
Fixed at 10:30pm 晚上10点30分执行任务
Fixed at 23:59 12/31/2018   任务在2018年12月31号23点59分

52、任务计划管理

52、任务计划管理

52、任务计划管理

52、任务计划管理

52、任务计划管理

at 任务执行方式:交互式、输入重定向、at -f file 

at配置文件

任务计划的文件存放位置 /var/spool/at

控制用户是否能执行at任务:

  白名单:/etc/at.allow  优先级高,默认不存在,若存在,则只有在该文件中的用户能执行at命令

  黑名单:/etc/at.deny 默认存在,拒绝该文件中的用户执行at命令

  若两个文件都不存在,则只有root可以执行at命令

52、任务计划管理

系统cron计划任务

周期性任务计划cron相关的程序包:

   cronie:主程序包,提供crond守护进程及相关辅助工具

   crontabs:包含centos提供系统维护任务

   cronie-anacron:cronie的补充程序,用于监控cronie的任务执行状况

cron任务分为:

  系统任务:/etc/crontab主配置文件,/etc/cron.d/子配置文件

  用户cron任务:保存在/var/spool/cron/username,利用crontab命令管理

任务计划日志: /var/log/cron

系统任务

在/etc/crontab中配置

52、任务计划管理

(1) 特定值
给定时间点有效取值范围内的值
(2) *
给定时间点上有效取值范围内的所有值
表示“每...”
(3) 离散取值计划任务时间表示法:
#,#,#
(4) 连续取值
#-#
(5) 在指定时间范围上,定义步长
/#: #即为步长

#晚上9点10分运行echo命令
10 21 * * * lgw /bin/echo "Howdy!"
#每3小时echo和wall命令
0 */3 * * * lgw /bin/echo “howdy”; wall “welcome to lgw!

cron任务相关文件

/etc/crontab 配置文件
/etc/cron.d/ 配置文件
/etc/cron.hourly/ 脚本
/etc/cron.daily/ 脚本
/etc/cron.weekly/ 脚本
/etc/cron.monthly/ 脚本

52、任务计划管理

52、任务计划管理

管理临时文件

CentOS 7 使用 systemd-tmpfiles-setup服务实现

CentOS 6 使用/etc/cron.daily/tmpwatch定时清除临时文件

配置文件:

/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles/*.conf

systemd-tmpfiles –clean|remove|create configfile
用户计划任务crontab命令

命令格式 crontab [-u user] [-l | -r | -e] [-i]

常用选项:

-l 列出所有任务
-e 编辑任务
-r 移除所有任务
-i 同-r一同使用,以交互式模式移除指定任务
-u user 仅root可运行,指定用户管理cron任务

控制用户执行计划任务:
/etc/cron.{allow,deny}

修改默认的cron的文本编辑工具

root@ubuntu1804:~# cat /etc/profile.d/env.sh
export EDITOR=vim

注:cron任务中不建议使用%,它有特殊用途,它表示换行的特殊意义,且第一个%后的所有字符串会被将 成当作命令的标准输入 如果在命令中要使用%,则需要用 \ 转义 注意:将%放置于单引号中是不支持的

52、任务计划管理