Linux中Crontab(定时任务)命令详解及使用教程

news/2025/3/30 14:48:10/

Crontab介绍:Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台

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

1.使用yum命令安装Crontab:

yum install vixie-cron 
yum 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 status
ntsysv #查看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 重启apache
ESC #按ESC键退出编辑模式
:wq #键入:wq保存
service crond restart #重启crontab服务

4.查看任务列表:

crontab -l

5.Crontab相关命令:


(1)语  法:
crontab [-u <用户名称>][配置文件] 或 crontab { -l | -r | -e }
-u   #<用户名称> 是指设定指定<用户名称>的定时任务,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的定时任务。
-l  #列出该用户的定时任务设置。
-r  #删除该用户的定时任务设置。
-e  #编辑该用户的定时任务设置。(2)命令时间格式 :
*     *    *   *   *  command
分   时   日   月  周   命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令(3)一些Crontab定时任务例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart  #每晚的21:30 重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart  #每月1、10、22日的4 : 45重启apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart  #每周六、周日的1 : 10重启apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart  #每天18 : 00至23 : 00之间每隔30分钟重启apache
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart  #每星期六的11 : 00 pm重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart  #晚上11点到早上7点之间,每隔一小时重启apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart  #每一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart  #每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart  #一月一号的4点重启apache*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org  #每半小时同步一下时间
0 */2 * * * /sbin/service httpd restart  #每两个小时重启一次apache 
50 7 * * * /sbin/service sshd start  #每天7:50开启ssh服务 
50 22 * * * /sbin/service sshd stop  #每天22:50关闭ssh服务 
0 0 1,15 * * fsck /home  #每月1号和15号检查/home 磁盘 
1 * * * * /home/bruce/backup  #每小时的第一分执行 /home/bruce/backup这个文件 
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  #每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
30 6 */10 * * ls  #每月的1、11、21、31日是的6:30执行一次ls命令

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

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

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执行时间计算 - 在线工具

在这里插入图片描述

 


http://www.ppmy.cn/news/349126.html

相关文章

解决git每次都需要账号密码

$ git config --global credential.helper store

docker的数据管理

一、管理docker容器中数据 管理Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器( DataVolumes Containers) 。 1、 数据卷 数据卷是一个供容器使用的特殊目录&#xff0c;位于容器中。可将宿主机的目录挂载到数据卷上&#xff0c;对数据卷的修改操作立刻…

Linux基础知识3

Linux基础知识 适合有Linux基础的人群进行复习。 禁止转载&#xff01; 用户与用户组管理 Linux系统下的3类用户和功能&#xff1b; 答&#xff1a; root用户&#xff08;或称根用户、超级用户&#xff09;&#xff1a;Linux的内置用户&#xff0c;权限最高&#xff0c;具有…

yoga14s 2021 外接显示器 无连接 无反应 type c扩展坞 检测不到外接显示器

我是yoga14s 2021版本 更新过bios 我测试出 1.笔记本合上 2.连接电源等待电源灯亮 3.连接带有显示器的拓展坞等待2-3秒 4.掀开笔记本 如果第四步黑屏不显示那就5.合上笔记本 6.断开电源 7.掀开笔记本至正常启动 8.重复第一步 如果第四步之后正常显示等待3-5s外接显示器就连上了…

拯救者 linux 无线网卡驱动下载,联想y7000无线网卡驱动下载-联想拯救者y7000无线网卡驱动v19.51.22.2 官方版 - 极光下载站...

联想拯救者y7000网卡驱动是款非常实用的lenovo系列笔记本驱动程序&#xff0c;下载此驱动可以解决网络正常连接实用问题或驱动损坏修复问题等&#xff0c;还能提升电脑的网络运作速度&#xff0c;让更好的浏览网页&#xff0c;看电视或打游戏等&#xff0c;有需要的朋友快来下载…

VGA、DVI、HDMI三种视频信号接口

目前&#xff0c;电脑显示器常见的接口主要有HDMI、DP、DVI、VGA等4种接口。显示器数据线性能排名&#xff1a;DP>HDMI>DVI>VGA。其中 
VGA是模拟信号&#xff0c;已经被主流所淘汰&#xff0c;DVI、HDMI、DP 都是数字信号&#xff0c;是目前的主流 一、VGA接头 针数…

DP、HDMI、DVI、VGA接口

目前电脑显示器常见接口有DP、HDMI、DVI、VGA共4种接口。 性能排名&#xff1a;DP>HDMI>DVI>VGA。 VGA是模拟信号&#xff0c;已经被主流所淘汰。DP、HDMI、DVI都是数字信号&#xff0c;是目前的主流。 VGA和DVI支持视频传输&#xff0c;不支持音频传输。HDMI和DP同时…

VGA HDMI DVI DP接口是什么之显示器显示不清晰我该怎么办

VGA接口 先说VGA接口&#xff08;简述属于淘汰边缘产品对于2017年来说重点是VGA传输模拟信号&#xff09; VGA接口共有&#xff11;&#xff15;针&#xff0c;分成&#xff13;排&#xff0c;每排&#xff15;个孔&#xff0c;是显卡上应用 VGA接口是大家所熟知的一个视频模拟…