linux添加重复的定时任务,Linux下添加定时任务

很多时候需要代码定时定点去执行,比如说写了一段爬取网站信息的代码,想每天早上进行一次爬取,就需要为系统添加计划任务。而在Linux系统下,系统计划任务可以通过crond来实现。那么crond是什么呢,以下摘录自网络:

crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。来自:百度百科

Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作。如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作。这个Crond定时任务服务就相当于我们早上使用的闹钟一样。来自:Linux公社

说白了就是,我们可以通过自己编写定时规则来实现一些定时任务

下面先介绍一下crond的基本命令:

crond status:查看crond服务状态

crond start:启动crond服务

crond stop:关闭crond服务

crond restart:重启crond服务

crontab -u:设定某个用户的crond服务

crontab -l:列出某个用户的crond内容

crontab -r:删除某个用户的crond服务

crontab -e:编辑某个用户的crond服务内容

*有时在启动crond时会出现crond: can't lock /var/run/crond.pid, otherpid may be 15340: Resource temporarily unavailable的提示,只需用killall crond结束所有crond服务再重新启动即可

接下来是crond编写格式:

429fd5852b7f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

crond格式

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

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

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

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

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

比如:

0 1 * * * /bin/echo 'test' > /home/test.log

表示每天01:00打印字符串‘test’到/home/test.log文件中

又比如:

*/5 * * * * /home/test.sh

表示每隔5分钟执行/home/test.sh脚本

再比如:

0 1,2 * * 3 /home/test.sh

表示每周3的01:00和02:00分别执行一次/home/test.sh脚本

crond定时任务添加规范:

添加注释

定时任务最好以脚本(.sh)的形式执行

执行shell脚本任务前加/bin/sh

所有路径都要写全路径(包括应用程序的路径),比如要定时执行python程

序,执行命令不能简单写作python ***.py,python程序的完整路径也要写

编写执行脚本要注意不要和window混用,要在纯linux环境下编写,否则会

因平台保存文件格式不同出现-bash: ./***.sh: /bin/bash^M: bad interpreter: No such file or directory的错误

编写好的执行脚本最好先在命令行验证一下,在添加进计划任务中

定时任务命令或脚本结尾加>/dev/null 2>&1

完整的计划任务实例:

crond添加定时任务

0 1 * * * /home/test.sh

test.sh: #遇到权限问题执行 chmod u+x test.sh

#!/bin/sh

/usr/bin/python /home/test.py > /dev/null 2>&1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值