ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux-任务计划

2022-04-28 11:01:37  阅读:193  来源: 互联网

标签:daemon 12 crontab cron 任务 计划 Linux root


1、一次性任务

at 工具

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

at 命令:

at [option] TIME
-V 显示版本信息
-t time   时间格式 [[CC]YY]MMDDhhmm[.ss]
-l 列出指定队列中等待运行的作业;相当于atq
-d N 删除指定的N号作业;相当于atrm
-c N 查看具体作业N号任务
-f file 指定的文件中读取任务
-m 当任务被完成之后,将给用户发送邮件,即使没有标准输出
常用选项:

注意:

  • 作业执行命令的结果中的标准输出和错误以执行任务的用户身份发邮件通知给 root
  • 默认CentOS 8 最小化安装没有安装邮件服务,需要自行安装

TIME:定义出什么时候进行 at 这项任务的时间

HH:MM 在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务
02:00    
HH:MM YYYY-MM-DD   规定在某年某月的某一天的特殊时刻进行该项任务
02:00 2016-09-20  
HH:MM[am|pm] [Month] [Date]
06pm March 17
17:20 tomorrow
HH:MM[am|pm] + number [minutes|hours|days|weeks], 在某个时间点再加几个时间后才进行该
项任务
now + 5 min
02pm + 3 days
范例:at 时间格式

at 任务执行方式:

  • 交互式
  • 输入重定向
  • at -f file

/etc/at.{allow,deny} 控制用户是否能执行at任务

  • 白名单:/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令
  • 黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在at.deny 文件中的使用 者则可执行
  • 如果两个文件都不存在,只有 root 可以执行 at 命令
[root@ubuntu ~]#ll /var/spool/cron/
total 20
drwxr-xr-x 5 root   root    4096 Apr 23  2020 ./
drwxr-xr-x 5 root   root    4096 Dec 12 17:42 ../
drwxrwx--T 2 daemon daemon  4096 Dec 12 17:47 atjobs/
drwxrwx--T 2 daemon daemon  4096 Dec 12 17:47 atspool/
drwx-wx--T 2 root   crontab 4096 Feb 14  2020 crontabs/
[root@ubuntu ~]#ll /var/spool/cron/atjobs/
total 16
drwxrwx--T 2 daemon daemon 4096 Dec 12 17:47 ./
drwxr-xr-x 5 root   root   4096 Apr 23  2020 ../
-rwx------ 1 root   daemon 2875 Dec 12 17:36 a000010198e058*
-rw------- 1 daemon daemon    6 Dec 12 17:46 .SEQ
范例: ubuntu at任务存放路径

2、周期性任务计划cron

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

  • cronie:主程序包,提供crond守护进程及相关辅助工具
  • crontabs:包含CentOS提供系统维护任务
  • cronie-anacron:cronie的补充程序,用于监控cronie任务执行状况,如:cronie中的任务在过去 该运行的时间点未能正常运行,则anacron会随后启动一次此任务

cron 依赖于crond服务,确保crond守护处于运行状态:

#CentOS 7 以后版本:
systemctl status crond
#CentOS 6:
service crond status

cron任务分为

  • 系统cron任务:系统维护作业,/etc/crontab 主配置文件, /etc/cron.d/ 子配置文件
  • 用户cron任务:保存在 /var/spool/cron/USERNAME(ubuntu 系统存放 在/var/spool/cron/crontabs/USERNAME),利用 crontab 命令管理

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

创建周期计划任务crontab

/etc/crontab 格式说明

[root@centos8-liyj ~]#cat /etc/crontab 
SHELL=/bin/bash                #默认的SHELL类型
PATH=/sbin:/bin:/usr/sbin:/usr/bin     #默认的PATH变量值,可修改为其它路径
MAILTO=root                   #默认标准输出和错误发邮件给root,可以指向其它用户

# For details see man 4 crontabs

# 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

crontab命令格式:

crontab [-u user] [-l | -r | -e] [-i]

常用选项:

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

11月每天的6-12点之间每隔2小时执行/app/bin/test.sh

#在6,8,10,12点整共4次分别执行test.sh
[root@centos8 ~]#crontab -l
0 6-12/2 * 11 * /app/bin/test.sh

#以下配置只会在5,7,9,11点整执行
0 5-12/2 * 11 * /app/bin/test.sh

 

标签:daemon,12,crontab,cron,任务,计划,Linux,root
来源: https://www.cnblogs.com/lyj1023/p/16201981.html

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

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

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

ICode9版权所有