返回顶部
首页 > 资讯 > 操作系统 >如何正确使用Linux任务调度进程的crond命令
  • 921
分享到

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

2023-06-13 03:06:15 921人浏览 薄情痞子
摘要

这篇文章主要讲解了“如何正确使用linux任务调度进程的crond命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何正确使用Linux任务调度进程的crond命令”吧!  一、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命令这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何正确使用Linux任务调度进程的crond命令

本文链接: https://lsjlt.com/news/264642.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何正确使用Linux任务调度进程的crond命令
    这篇文章主要讲解了“如何正确使用Linux任务调度进程的crond命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何正确使用Linux任务调度进程的crond命令”吧!  一、crond...
    99+
    2023-06-13
  • Linux中crond命令如何使用
    本篇文章为大家展示了Linux中crond命令如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存个人执行的工作:某个用户定期要做...
    99+
    2023-06-16
  • 如何正确使用Linux命令?du
    本文简单介绍了如何使用如何使用Linux命令du,需要的朋友可以参考一下。 du(disk usage) 功能说明:显示目录或文件的大小。 语  法:du [-abcDhHklmsSx][-L <符...
    99+
    2022-06-04
    如何正确 命令 Linux
  • Linux下如何正确使用sudo命令
    这篇“Linux下如何正确使用sudo命令”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux下如何正确使用sudo命令...
    99+
    2023-06-27
  • Linux怎么正确使用kill命令杀死进程
    这篇文章给大家分享的是有关Linux怎么正确使用kill命令杀死进程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是L...
    99+
    2023-06-27
  • 如何正确的使用Git命令
    这篇文章将为大家详细讲解有关如何正确的使用Git命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.1 概述在 Git 中提交时,会保存一个 commit 对象,该对象包含一个指向暂存内容...
    99+
    2023-06-06
  • 如何正确的使用Ping命令
    如何正确的使用Ping命令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] ...
    99+
    2023-06-14
  • 如何正确的使用Tracert 命令
    如何正确的使用Tracert 命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Tracert命令诊断实用程序通过向目标计算机发送具有不同生存时间的ICMP数据...
    99+
    2023-06-14
  • 如何正确的使用chmod命令
    这篇文章将为大家详细讲解有关如何正确的使用chmod命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在介绍了使用 chmod 的"缩写"参数改变文件或目录的权限后, 还...
    99+
    2023-06-13
  • 如何正确的使用mshta命令
    这篇文章将为大家详细讲解有关如何正确的使用mshta命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。它支持命令行参数,可以接收JS和VBS的方法。看示例(在命令行下测试):JS:mshta...
    99+
    2023-06-08
  • 如何正确的使用wmic 命令
    这期内容当中小编将会给大家带来有关如何正确的使用wmic 命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。wmic 获取进程名称以及可执行路径:wmic process get name,executa...
    99+
    2023-06-08
  • 如何正确的使用set 命令
    如何正确的使用set 命令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、利用set /a去掉日期等数字前面的0,如:2007-09-25中月份中的09前面的0(当然这个月份...
    99+
    2023-06-08
  • 如何正确的使用grep命令
    本篇文章为大家展示了如何正确的使用grep命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。例1 在文件中查找模式(单词)在/etc/passwd文件中查找单词“linuxtechi”代码如下:ro...
    99+
    2023-06-13
  • 如何正确使用Python命令
    本篇内容主要讲解“如何正确使用Python命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何正确使用Python命令”吧!我想你最常用到的 Python 命令就是运行 Python 脚本文件...
    99+
    2023-06-16
  • Linux中Kill命令的进程调度该如何理解
    这篇文章主要为大家分析了Linux中Kill命令的进程调度该如何理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux中Kill命令的进程调度该如何理...
    99+
    2023-06-28
  • 如何正确的使用watch ifconfig命令
    如何正确的使用watch ifconfig命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。watch命令可以反复的执行一个命令,默认时间间隔为2秒钟。watch ifco...
    99+
    2023-06-10
  • 如何正确的使用Prompt、Restore命令
    这篇文章给大家介绍如何正确的使用Prompt、Restore命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。               ...
    99+
    2023-06-09
  • Linux的rmdir命令怎么正确使用
    本篇内容主要讲解“Linux的rmdir命令怎么正确使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux的rmdir命令怎么正确使用”吧!命令简介:rm...
    99+
    2024-04-02
  • Linux的rm命令怎么正确使用
    本篇内容主要讲解“Linux的rm命令怎么正确使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux的rm命令怎么正确使用”吧!rm是一个危险的命令,使用...
    99+
    2024-04-02
  • PHP应用程序中如何正确调用系统命令
    这篇文章主要介绍了PHP应用程序中如何正确调用系统命令的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP应用程序中如何正确调用系统命令文章都会有所收获,下面我们一起来看看吧。有时你需要使用 PHP 应用程序中...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作