我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何正确使用Linux任务调度进程的crond命令

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何正确使用Linux任务调度进程的crond命令

这篇文章主要讲解了“如何正确使用Linux任务调度进程的crond命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何正确使用Linux任务调度进程的crond命令”吧!

  一、crond简介

  概念

  crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。而crond正是它的守护进程。

  crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

  Linux下的任务调度分为两类,系统任务调度和用户任务调度。

  l 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

  /etc/crontab文件包括下面几行:

  SHELL=/bin/bash

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  MAILTO=root

  HOME=/

  # run-parts

  01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。第六至九行表示的含义将在下个小节详细讲述。这里不在多说。

  l 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

  二、crontab工具的使用

  (1)crontab的使用格式

  crontab常用的使用格式有如下两种:

  crontab [-u user] [file]

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

  选项含义如下:

  l -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。

  l file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

  l -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

  l -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

  l -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

  l -i:在删除用户的crontab文件时给确认提示。

  (2)crontab文件的含义

  用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

  minute   hour   day   month   week   command其中:

  l minute: 表示分钟,可以是从0到59之间的任何整数。

  l hour:表示小时,可以是从0到23之间的任何整数。

  l day:表示日期,可以是从1到31之间的任何整数。

  l month:表示月份,可以是从1到12之间的任何整数。

  l week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

  l command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

  在以上各个字段中,还可以使用以下特殊字符:

  l 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

  l 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

  l 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

  l 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

  (3)crontab文件举例

  0 */3 * * * /usr/local/apache2/apachectl restart表示每隔3个小时重启apache服务一次。

  30 3 * * 6 /webdata/bin/backup.sh

  表示每周六的3点30分执行/webdata/bin/backup.sh脚本的操作。

  0 0 1,20 * *  fsck /dev/sdb8

  表示每个月的1号和20号检查/dev/sdb8磁盘设备。

  10 5 */5 * *  echo "">/usr/local/apache2/log/access_log表示每个月的5号、10号、15号、20号、25号、30号的5点10分执行清理apache日志操作。

  三、 使用crontab工具的注意事项

  (1)注意环境变量问题

  有时我们创建了一个crontab,但是这个任务却无法自动执行,而手动执行这个任务却没有问题,这种情况一般是由于在crontab文件中没有配置环境变量引起的。

  在crontab文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个任务时,是在当前shell环境下进行的,程序当然能找到环境变量,而系统自动执行任务调度时,是不会加载任何环境变量的,因此,就需要在crontab文件中指定任务运行所需的所有环境变量,这样,系统执行任务调度时就没有问题了。

  (2)注意清理系统用户的邮件日志

  每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要。

  例如,可以在crontab文件中设置如下形式,忽略日志输出:

  0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1“/dev/null 2>&1”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,这样日志输出问题就解决了。

  (3)系统级任务调度与用户级任务调度

  系统级任务调度主要完成系统的一些维护操作,用户级任务调度主要完成用户自定义的一些任务,可以将用户级任务调度放到系统级任务调度来完成(不建议这么做),但是反过来却不行,root用户的任务调度操作可以通过“crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件,需要注意的是,如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,即使在root用户下创建一个定时重启系统的任务也是无效的。

感谢各位的阅读,以上就是“如何正确使用Linux任务调度进程的crond命令”的内容了,经过本文的学习后,相信大家对如何正确使用Linux任务调度进程的crond命令这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何正确使用Linux任务调度进程的crond命令

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何正确使用Linux任务调度进程的crond命令

这篇文章主要讲解了“如何正确使用Linux任务调度进程的crond命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何正确使用Linux任务调度进程的crond命令”吧!  一、crond
2023-06-13

Linux中Kill命令的进程调度该如何理解

这篇文章主要为大家分析了Linux中Kill命令的进程调度该如何理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux中Kill命令的进程调度该如何理
2023-06-28

Linux系统如何使用fork命令创建子进程执行任务

小编给大家分享一下Linux系统如何使用fork命令创建子进程执行任务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!fork 系统调用要创建一个进程,最基本的系统调用是 fork: # include pid_t fork
2023-06-28

如何正确的使用远程桌面连接命令mstsc

今天就跟大家聊聊有关如何正确的使用远程桌面连接命令mstsc,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先需要对被远程控制的电脑A进行设置:在电脑A上点击【开始】—【
2023-06-07

如何使用xkill命令杀掉Linux进程/未响应的程序

如何使用xkill命令杀掉Linux进程/未响应的程序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux系统中当一个进程或者资源未响应时,可以找出资源的p
2023-06-28

如何使用PHP实现微信小程序的任务进度功能?

如何使用PHP实现微信小程序的任务进度功能?随着微信小程序的快速发展,越来越多的开发者开始关注如何使用PHP来实现微信小程序的一些定制化功能。其中,任务进度功能是一个非常常见和实用的功能,因此本文将重点介绍如何使用PHP来实现微信小程序的任
2023-10-26

如何使用Linux中用于配合管理定时任务的atrm与batch命令

本篇内容介绍了“如何使用Linux中用于配合管理定时任务的atrm与batch命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!atrm删除
2023-06-12

在Linux系统中如何使用xkill命令杀掉未响应的进程

本篇内容介绍了“在Linux系统中如何使用xkill命令杀掉未响应的进程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们如何在Linux中
2023-06-12

Linux如何使用scp命令进行文件远程的上传或下载

这篇文章主要讲解了“Linux如何使用scp命令进行文件远程的上传或下载”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux如何使用scp命令进行文件远程的上传或下载”吧!  命令:sc
2023-06-13

在Linux中如何使用at和crontab命令在指定时间计划任务服务程序

这篇文章的内容主要围绕在Linux中如何使用at和crontab命令在指定时间计划任务服务程序进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!经验丰富
2023-06-28

如何使用Python中的异步IO和协程实现一个高并发的分布式任务调度系统

如何使用Python中的异步IO和协程实现一个高并发的分布式任务调度系统在当今高速发展的信息时代,分布式系统变得越来越普遍。而高并发的任务调度系统也成为许多企业和组织中不可或缺的一部分。本文以Python为例,介绍了如何使用异步IO和协程来
2023-10-27

编程热搜

目录