记录一次自己写linux下crontab定时任务的过程

最近在做一个项目,商城秒杀,用户抢到订单但是没有支付,超时后订单关闭,回滚库存。写了定时任务,手动执行没问题,定时器查看了也再跑,可是就是没有执行写好的任务。百度了很多 ,不是说权限问题,就是环境变量问题,最后发现都不是。然后觉得这么找问题很乱,就一步一步排查。

首先看,crontab任务有没有运行,相关命令如下:

service crond status

如果显示running,则正在运行,否则按如下命令操作:

crontab服务启动与关闭。

/etc/init.d/crond stop           --关闭服务

/etc/init.d/crond start           --启动服务

/etc/init.d/crond restart        --重启服务

/etc/init.d/crond reload        --重新载入配置

其他相关命令:

crontab –e 编辑

crontab -l 显示所有任务

crontab -r  删除任务

tail -f /var/log/cron 查看正在执行的定时任务

点击  i 键,进入编辑状态

输入要执行的命令:如上  * * * * * /www/......./filename.sh;

按ESC键,然后输入:wq保存退即可 

注意:执行的脚本文件一定要给777权限(非常重要)

 

2.修改application/command.php内容,加入上述的定时器内容

1 <?php
2 return [
3     'application\command\Test', // 加入需要cmd运行的PHP文件
4 ];

主要还是参考了这篇文章:https://www.cnblogs.com/seizemiss/p/9467558.html

### 回答1: Linux crontab是一种定时任务管理工具,可以在指定的时间自动执行一些命令或脚本。它可以帮助我们自动化一些重复性的工作,提高工作效率。通过编辑crontab文件,我们可以设置定时任务的执行时间、执行命令或脚本等参数。在Linux系统中,crontab是非常常用的工具之一。 ### 回答2: Linuxcrontab是一种用于执行定时任务的工具,可以自动化地在指定时间执行命令或脚本。下面给出一些关于crontab的基本知识: 1. crontab是一个命令,用于创建、删除和查看用户的定时任务列表。可以通过`crontab -e`命令编辑当前用户的crontab文件,通过`crontab -l`命令查看当前用户的定时任务列表,通过`crontab -r`命令删除当前用户的定时任务列表。 2. crontab文件是用户的定时任务列表,它是一个纯文本文件,存储了一系列用于定时执行的命令或脚本。每行都表示一个定时任务,可以指定任务的执行时间和要执行的命令。 3. crontab文件的格式是:`分 时 日 月 星期 命令`,其中分别表示分钟、小时、日期、月份、星期和要执行的命令。 4. 分、时、日、月、星期可以使用具体的数字表示,也可以使用特殊字符表示。特殊字符包括:`*`表示所有值,`/`表示间隔值,`-`表示范围值,`,`表示多个值。 5. crontab文件的命令部分可以是一个要执行的命令,也可以是一个要执行的脚本。脚本可以是任何可执行的文件,可以用绝对路径或相对路径指定。 6. crontab定时任务可以精确到分钟级别,可以实现很多常见的定时任务,比如每天执行一次、每小时执行一次等。 7. crontab的日志文件位于`/var/log/cron`,记录定时任务的执行情况,可以用于排查问题。 总结来说,Linuxcrontab是一个非常强大和灵活的定时任务管理工具,能够帮助用户自动化执行命令和脚本,提高工作效率。但是使用时需要注意格式和时间设置,确保定时任务能够按预期执行。 ### 回答3: Crontab是在Linux操作系统上用于定时执行任务的工具。它允许用户按照自定义的时间表来安排任务的运行,可以是每天、每周、每月或者其他特定的时间间隔。 要使用Crontab,我们可以通过命令行来编辑用户的Crontab文件。命令是`crontab -e`,这将会打开一个文本编辑器,并显示已经安排的任务列表。每一行都表示一个要运行的任务,其中包括任务的执行时间和要执行的命令。 Crontab文件中的每一行都遵循一定的格式。格式由若干个时间和命令组成,用空格或制表符分隔。时间字段被分成了五个部分,按顺序分别代表分钟、小时、日期、月份和星期。通配符\*可以用来指定所有可能的值。 例如,如果我们想要每天早上8点运行一个命令,我们可以添加一行`0 8 * * * command`到Crontab文件中。这将会在每天的8点整执行所指定的命令。我们还可以使用逗号来指定多个值,比如`0 8,12 * * * command`表示每天的8点和12点都会执行命令。 除了指定具体的时间外,我们还可以使用特殊的字符串来表示一些常用的时间间隔。比如`@reboot`表示在系统启动时运行任务,`@daily`表示在每天的午夜运行,`@weekly`表示在每周的周日午夜运行,`@monthly`表示在每月的第一天午夜运行等等。 总的来说,Crontab是一个非常强大和灵活的工具,可以帮助我们自动化很多重复性的任务,提高工作效率。通过简单地编辑Crontab文件,我们可以安排任务在特定的时间点自动运行,无需人工的干预。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值