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,如需转载请自行联系原作者
目录
相关文章
|
4天前
|
Ubuntu 安全 Linux
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
36 1
|
11天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署envlinks极简个人导航页
【4月更文挑战第11天】Linux系统之部署envlinks极简个人导航页
52 2
|
14天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
72 0
|
14天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
29 0
|
21天前
|
存储 前端开发 Linux
Linux系统之部署ToDoList任务管理工具
【4月更文挑战第1天】Linux系统之部署ToDoList任务管理工具
63 1
|
23天前
|
存储 传感器 运维
linux系统资源统计工具
【4月更文挑战第1天】Linux系统监控工具如dstat、htop、glances、vmstat、top、iostat、mpstat、sar和atop,用于跟踪CPU、内存、磁盘I/O、网络和进程性能。这些工具提供实时、交互式和历史数据分析,助力管理员优化系统性能和故障排查。例如,dstat是vmstat等工具的增强版,htop提供彩色界面的进程管理,而atop则结合了多种功能并记录历史数据。
28 5
linux系统资源统计工具
|
12天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
34 6
|
22天前
|
Ubuntu 架构师 Java
Linux系统常用命令非常详细建议收藏
Linux系统常用命令非常详细建议收藏
49 0
|
2天前
|
资源调度 JavaScript Ubuntu
Linux系统之部署briefing视频聊天系统
【4月更文挑战第21天】Linux系统之部署briefing视频聊天系统
26 2
|
3天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
16 0