首页 > 网站搭建 > 技术分享内容详情

Linux中Crontab定时任务命令详解及使用教程 2025-02-25 浏览量: 来源:网络

Crontab介绍:
Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos,原意是时间。通常crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

d3827-Linux中Crontab定时任务命令详解及使用教程.jpg

1.使用yum命令安装Crontab:

yum install vixie-cronyum install crontabs注:vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。cron是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:/sbin/service crond start #启动服务/sbin/service crond stop #关闭服务/sbin/service crond restart #重启服务/sbin/service crond reload #重新载入配置

2.查看Crontab状态:

service crond statusntsysv #查看crontab服务是否已设置为开机启动chkconfig –level 35 crond on #加入开机自动启动

在这里插入图片描述

3.添加定时任务:

crontab -e #编辑cron任务模式i #默认文字编辑器为vim,按i字母键即可添加cron任务30 3 * * * /usr/local/etc/rc.d/lighttpd restart #将命令代码放入,此命令意义为每天的03:30 重启apacheESC #按ESC键退出编辑模式:wq #键入:wq保存service crond restart #重启crontab服务

4.查看任务列表:

crontab -l

5.Crontab相关命令:

6.部分脚本无法执行问题:
如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。
解决方法:
(1)所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。
(2)在 shell 脚本开头使用以下代码:

#!/bin/sh. /etc/profile. ~/.bash_profile

(3)在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效,例如:

20 03 * * * . /etc/profile;/bin/sh /var/www/wwwroot/test.sh

7.Crontab默认调度任务:
cron默认配置了调度任务,分别为:hourly、daily、weekly、mouthly,默认配置文件为/etc/anacrontab
将需要执行的脚本放到相应的目录下即可,目录分别为:

/etc/cron.hourly/etc/cron.daily/etc/cron.weekly/ect/cron.mouthly

8.注意清理系统用户的邮件日志:
每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要。
例如,可以在crontab文件中设置如下形式,忽略日志输出:

0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1

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

9.Crontab日志路径:

ll /var/log/cron* #/var/log/cron只会记录是否执行了某些计划的脚本,但是具体执行是否正确以及脚本执行过程中的一些信息则linux会每次都发邮件到该用户下。

在这里插入图片描述

10.Crontab命令在线验证工具:
crontab执行时间计算 - 在线工具

在这里插入图片描述

相关标签: Linux IT技术分享 Linux命令

Copyright © 2016-2025 帆笛跨境网 · 版权所有

联系我们

全国服务热线

4008105666

E-mail:support@myfindy.com‬

地 址:中国 · 成都

帆笛跨境客服微信二维码
扫一扫,加微信

Copyright © 2016-2025 帆笛跨境网 · 版权所有