计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 crond 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的任务。比如我们可以在配置文件中约定每天早上4点,对httpd 服务器重新启动,这就是一个计划任务。
在Linux系统中,计划任务一般是由cron承担,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时调用工作任务。
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动启动,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以设置这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:
*/1 * * * * ls >>/tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个时间数字,数字的取值范围和含义如下:
分钟 (0-59)
小时 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个特殊的符号就是"*"、"/"、"-"和",",*代表所有的时间取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:
每天早上6点整输出字符串"Good morning."到/tmp/test.txt文件。
0 6 * * * echo "Good morning." >> /tmp/test.txt
注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line
每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
2.编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时的01分执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天4时02分执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期天的4时22分执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月的第一天4时42分执行/etc/cron.monthly内的脚本
分享到:
相关推荐
在CentOS中,配置和管理cron任务对于自动化日常维护和系统操作至关重要。本文将详细介绍如何在Linux(CentOS)中配置cron计划任务。 1. **crontab命令及其选项** `crontab`命令是用于管理用户级cron任务的工具。你...
Cron的主要配置文件位于`/etc/crontab`,此文件定义了系统的全局Cron任务。以下是对文件中关键行的解析: 1. `SHELL=/bin/bash`:指定了Cron作业的默认Shell环境。 2. `PATH=/sbin:/bin:/usr/sbin:/usr/bin`:定义...
要配置cron任务,你需要使用 `crontab` 命令。这个命令可以用来列出、编辑或删除用户当前的cron表。例如,`crontab -e` 命令会打开一个编辑器(默认是Vi或Vim),让你编辑cron文件。在cron文件中,每一行代表一个...
例如,`-e`选项用于编辑用户的cron任务,`-l`用于列出用户的cron任务,`-r`用于删除所有cron任务。如果想要在删除cron任务前提示用户,可以使用`-i`选项。 在cron表达式中,有五列时间参数,分别代表分钟、小时、...
在Linux系统中,有两种主要的计划任务工具,用于自动化定期执行特定命令或脚本:`at` 和 `cron`。这两个工具各有特点,满足不同类型的定时任务需求。 ### 1. `at` 一次性计划任务 `at` 用于设置一次性执行的任务,...
四、检查Cron计划任务在不同环境中的运行机制 Cron计划任务在不同环境中的运行机制不同。在Linux中,可以使用“# sudo /usr/bin/php /path/to/moodle/admin/cli/cron.php”命令运行Cron计划任务。在FreeBSD中,可以...
本文将详细讲解如何在Windows中设置定时任务,以及与Linux中的Cron任务的异同。 首先,让我们了解什么是Cron。Cron是Unix/Linux系统中的一个守护进程,用于安排在未来特定时间执行命令或脚本。它通过配置cron表格...
1. 为了提高效率,尽量避免在Cron任务中执行复杂的数据库操作,可以考虑使用消息队列分担压力。 2. 使用环境变量存储敏感信息,如数据库密码,以增强安全性。 3. 定期检查和清理旧的Crontab任务,避免无用任务占用...
此外,这些工具往往还具备预览功能,可以即时显示任务的执行计划,确保设置正确无误。 QuartzCron.exe可能是此类工具的一个实例,它可能是一个独立的桌面应用程序,专为创建和测试CRON表达式而设计。用户可以通过这...
"Cron表达式"是Linux系统中计划任务的核心,而Java社区通过`@Scheduled`注解和Quartz库等方式也引入了类似的概念,使得在Java应用中实现定时任务变得非常方便。 "Cron"这个词来源于北欧神话中的时间之神"Cronus",...
think-cron 计划任务安装方法composer require yunwuxin/think-cron使用方法创建任务类<?phpnamespace app\task;use yunwuxin\cron\Task;class DemoTask extends Task{ public function configure() { $this->...
3. **注册任务**:使用cron表达式将任务添加到调度器中,指定其执行计划。 4. **启动调度器**:开始事件循环,让调度器开始检查并执行任务。 5. **监控和调试**:利用测试工具(如"SchedulerTest")检查任务是否按照...
在Windows系统中,虽然有内置的任务计划程序(Task Scheduler),但有些用户可能更倾向于使用具有类似Unix/Linux `cron`功能的第三方软件,以获得更加灵活和易于管理的定时任务设置。 "cron"是Unix和Linux系统中的...
通过合理配置cron任务,可以提高系统管理的效率和自动化程度。本文详细介绍了cron的基本概念、配置方法、使用技巧以及实际应用案例,希望能够帮助读者更好地理解和使用cron。 本文深入探讨了Linux中使用cron进行任务...
### Linux任务计划Cron文档使用详解 #### 一、Cron简介与基本操作 Cron是Linux系统中用于执行周期性任务的一种守护进程。通过Cron可以方便地安排任务自动在指定时间运行,大大提高了系统的自动化程度。Cron支持多种...
gocron 定时任务系统的配置与运行详解 以下是关于 gocron 定时任务系统的配置与运行详解的知识点: 一、创建 gocron 用户 * 创建 gocron 用户:使用 useradd 命令创建 gocron 用户,并授予 sudo 权限。 * 授权 ...
Go-gocron是一款基于Go语言实现的轻量级定时任务集中调度和管理系统,设计目标是为了解决在分布式系统中对定时任务的管理和调度问题。它提供了一个简单易用的API,可以方便地在Go应用中集成定时任务,且无需依赖外部...
本篇文章将详细探讨如何在 Kubernetes (k8s) 集群环境中,结合 Spring Boot 应用程序和 Kubernetes CronJob 资源来配置定时任务。 首先,Spring Boot 是一个流行的 Java 框架,用于快速构建微服务应用。它提供了...