Linux中系统cron

简介:

一、定期的任务执行,简称任务计划
在这些指定的任务执行时,不会显示到屏幕上,而是以邮件的方式发送给任务的发起者:mail
1.在未来的某个时间仅执行一次
使用"at"或者"batch"进行设定,他们两个的使用方法和参数都一样,这里以"at"为例;
时间的表示法:HH:MM、NN/DD/YY或者在时间后面跟上AM/PM来表示上下午、或now+# ("#"表示几分钟或几小时或几天或几周,其单位:min、hours、days、week)

在某个时间设置要执行的任务后使用"Ctrl+d",来提交任务。
#at -l 或 #atq      ---查看当前任务计划的列表
at -r JOB_NU  或atrm JOB_NU    ---移除尚未执行的任务
#at -r 1
#atrm 1
at -f JOB_FILE TIME    将多个任务写进文件中,在某个时间去读取该文件,以达到某个时间执行任务
#at -f ~/job/job.txt now+1min

2.在未来周期性的去执行一个任务
在中周期的执行任务分为两类:

第一类:属于系统任务,定义一些计划,用于系统自身的日常维护和运作
例如"what is"的数据库,就是系统定期的对其进行更新
其配置文件是:/etc/crontab

内容:


SHELL=/bin/bash                    ---指定解释器为bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin        ---为任务执行指定环境变量
MAILTO=root                    ---指定发送邮件的用户
HOME=/                        ---使用者运行的路径,这里是根目录

# 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


该文件内容分为7个字段:
 分钟     小时    天      月     星期    任务执行的发起者   执行的任务
[00-59] [00-23] [01-31] [01-12] [00-07]      USERNAME         ROLE

其中:通配:"*"
非连续时间点:","    
如:每小时的15和45分钟 ------>  15,45 * * * *
连续的时间点:"- "   
如:每天的凌晨3点的8-10分钟 ------>  8-10 3 * * * 
每几:"*/#"
如:每三分钟执行一次 ------>  */3 * * * *

注:这个文件中的命令基于bash外壳程序,所以当执行一些命令时需要指定其二进制文件所在的路径,这里使用PATH赋值,也可以在使用命令时写上其绝对路径,但要清楚的是这里的PATH和bash中的PATH是两个不同的概念。


第二类:属于用户定义的一些周期行任务
crontab 定义用户的周期任务
参数:    -e:编辑计划内容
          -l:列出计划内容
          -r:移除所有的计划内容

以上的三个参数直接操作的是作用于当前执行"crontab"命令的用户,如:
#crontab -e        ---编写周期执行的任务,保存之后会在/var/spool/cron/下生成一个和用户名同名的文件,其文件内容分为6个字段,和系统任务的字段一样,只是和系统任务比较缺少了任务的执行者这以字段
          
-u:为某个用户制定计划内容
#crontab -u redhat -e        ---保存结束后,文件的名字将自动命名为redhat

注:所有的任务会按照预订的周期运行,其前提必须是服务器处于开机运行状态。


3.anacron:检查crontab中那些过期且没有执行的任务,默认是关闭的

其配置文件:/etc/anacrontab

内容:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.


SHELL=/bin/sh                    ---指定解释器为bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin        ---为任务执行指定环境变量
MAILTO=root                    ---指定发送邮件的用户

1       65      cron.daily              run-parts /etc/cron.daily
7       70      cron.weekly             run-parts /etc/cron.weekly
30      75      cron.monthly            run-parts /etc/cron.monthly



四个字段意义:


• 时间间隔执行任务的时间间隔,单位为天。
• 等待时间在时间间隔到期后,如果任务没有顺利执行,则会等待此处设置的时间,然后再次尝试执行。
• 任务标识有关此任务的说明,它可包含任何非空格的字符(/除外),通常都用在anacron信息中,或是此任务的时间戳文件名。
• 命令实际执行的任务。
当任务完成后,anacron会将此日期记录在/var/spool/anacron目录的Timestamp文件中,默认的Timestamp文件有三个:cron.daily,cron.monthly和cron.weekly








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/793051,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
自然语言处理 数据挖掘 Linux
ModelScope问题之拷贝到内网linux系统运行代码报错如何解决
本合集将提供ModelScope安装步骤、配置要求和环境准备,以便用户顺利启动ModelScope进行模型开发和测试。
28 0
|
3天前
|
Oracle Linux Shell
Linux系统介绍
Linux系统介绍
13 2
|
8天前
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
18 5
|
9天前
|
Java Linux Shell
linux自动部署jar包,注册系统服务(基于Centos7)
linux自动部署jar包,注册系统服务(基于Centos7)
25 0
|
9天前
|
缓存 运维 Linux
Linux系统调优详解(十二)——IO调优之磁盘测速
Linux系统调优详解(十二)——IO调优之磁盘测速
27 1
|
21天前
|
运维 监控 数据可视化
Linux系统调优详解(六)——网络状态查看命令nload
Linux系统调优详解(六)——网络状态查看命令nload
41 5
|
10天前
|
Java Linux
手把手教你Linux系统下的Java环境配置,简单到不行!
手把手教你Linux系统下的Java环境配置,简单到不行!
34 1
|
13天前
|
缓存 Linux 网络安全
百度搜索:蓝易云【Linux系统服务器启动SSH服务时出现“error while loading shared libraries”错误该如何解决】
以上步骤应该能够解决“error while loading shared libraries”错误,使SSH服务能够正常启动并运行。
23 3
|
21天前
|
运维 Linux
Linux系统调优详解(五)——磁盘IO状态查看命令
Linux系统调优详解(五)——磁盘IO状态查看命令
25 5
|
2天前
|
Ubuntu Linux 程序员
【Linux】Linux系统的生态
【Linux】Linux系统的生态
【Linux】Linux系统的生态

相关产品

  • 云迁移中心