Linux系统定时任务

本文介绍了Linux系统中定时任务的实现方式,包括crond服务的启动与管理、定时任务的配置方法及其语法解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        我们知道,在windows系统中有定时任务,在控制面板-管理工具-任务计划程序设置任务可以在指定的时间执行指定的程序或其他工作。那么在linux中也有这个功能,而支持这个功能的服务就是crond服务。在linux中这个服务是默认安装的,也是开机自启动的。

我们可以通过chkconfig --list |grep crond命令查看这个服务的启动情况。

在这里顺便说一下服务的启动情况,service 服务名 start 是启动服务,这是redhat支持的service命令,如果没有这个命令,可以直接找到脚本来启动。(顺便说一下,rpm包安装的服务可以使用chkconfig 服务名称 on设置自启动)


既然是crond服务来进行定时任务,那怎么使用呢?

那就要靠这个服务的命令了。

crondtab -l   //查看定时任务

crondtab -e //编辑定时任务

crondtab -r //删除所有定时任务

通过crondtab -e编辑要做的任务,通过这个命令打开一个编辑器,然后输入要做的任务。例如:

*/1 * * * * echo m "eeee" >>/tmp/test        这个任务就是每分钟向/tmp/test文件中写入一遍“eeee”。

0 5 * * * /root/test.sh    这个任务就是每天凌晨五点执行这个脚本。

使用:wq保存后,可以使用crontab -l 就会列出这两个任务。 

如果不想使用这些任务了,就可以使用crontab -r 命令全部删除。如果只想删除某一个,那当然是再使用crontab -e进去删掉不再使用的任务。

下面说一下定时的符号说明

* * * * *  这是定时命令。

第一个*表示每个小时的第几分钟  10 * * * * 这个代表的是每小时的第10分钟,而不是每隔10分钟。

第二个*表示小时(0-23)

第三个* 表示天数(0-31)

第四个*表示月份(1-12)

第五个*表示周几(0-7)0与7都是周日

*是任何时间 

,表示不连续的时间 例如: 2,6,8 * * * * 表示每小时的第2,6,8分钟执行一遍。

-表示连续的时间 例如: 1-10 * * * * 表示每小时的1到10分钟

 /表示每隔多久时间  例如: */10 * * * * 表示每隔10分钟

再举几个例子理解一下:

 45 22 *** 在22点45分执行命令

0 17 * * 1 每周一的17点0分执行

0 5 1,15 * * 表示每个月的1号与15号的凌晨五点执行

40 4 * * 1-5 表示每周1至周5的凌晨4点40执行

*/10 4 * * * 每天凌晨4点每隔10分执行一次,也就是凌晨4点执行6次

0 0 1,15 * 1 意思是每个月的1号,15号或者是每周一 凌晨零点都执行一次。(注意:这里是或的关系,不是并的关系,也就是说不要理解成:在每个月的1号或者15号并且是周一才执行)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值