linux thinkphp 计划任务_Linux之计划任务

作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。

一次性调度执行 at

语法格式:at <TIMESPEC>

29cd674251f5e701e0e15e617022afda.png

设定一个定时创建用户的任务

[root@localhost ~]# at now +1min //设定一分钟后的任务
at> useradd wzw //创建用户wzw
at> <EOT>
job 1 at Wed Feb 26 21:02:00 2020
[root@localhost ~]# atq //查询定时任务
1	Wed Feb 26 21:02:00 2020 a root
[root@localhost ~]# id wzw //查询用户是否创建
uid=1001(wzw) gid=1001(wzw) 组=1001(wzw)

循环调度执行 cron

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

crond程序运行是计划任务执行的根本

[root@qianfeng ~]# systemctl status crond.service //查看crond.service状态

如未运行请先运行 systemctl start crond.service

创建计划任务:

[root@qianfeng ~]#crontab -e

查询计划任务:

[root@qianfeng ~]#crontab -l

删除计划任务

[root@qianfeng ~]#crontab -r

job format语法格式(时间格式:分、时、日、月、周)

*/5 * * * * /mysql_back.sh //每五分钟执行
0 2 1,4,6 * * /mysql_back.sh //每月的1,4,6日的2点整执行
0 2 5-9 * * /mysql_back.sh //每月5日到9日的两点整执行
* * * * * /mysql_back.sh //每分钟执行
0 * * * * /mysql_back.sh //每小时的0分执行
0 2 * * * /mysql_back.sh //每天两点整执行
0 2 14 * * /mysql_back.sh //每月14号的2点整执行
0 2 14 2 * /mysql_back.sh //2月14日2点整执行
0 2 * * 5 /mysql_back.sh //每月的周五,两点执行
0 2 2 6 5 /mysql_back.sh //6月2日的两点整执行和6月的周五两点整执行

5a3721d6f6055682c6b5c773691259b3.png
ThinkPHP 6 支持基于 Linux crontab 的计划任务,可以通过在系统的 crontab 中设置定时任务来实现。以下是实现计划任务的步骤: 1. 在 `app/command` 目录下创建一个 `Crontab.php` 命令文件,用于定义需要执行的计划任务。在文件中通过继承 `\think\console\Command` 类和实现 `configure` 和 `execute` 方法来定义计划任务。 ```php <?php namespace app\command; use think\console\Command; use think\console\Input; use think\console\Output; class Crontab extends Command { protected function configure() { $this->setName('crontab')->setDescription('Crontab Command'); } protected function execute(Input $input, Output $output) { // 执行计划任务的代码 $output->writeln('Crontab Command'); } } ``` 2. 在 `app/command.php` 文件中注册定义的计划任务。 ```php <?php // 注册命令 return [ 'app\command\Crontab', ]; ``` 3. 在 Linux 系统的 crontab 中设置定时任务,例如: ``` * * * * * /usr/local/php/bin/php /path/to/think crontab >/dev/null 2>&1 ``` 该命令表示每分钟执行一次 `/path/to/think crontab` 命令,其中 `/path/to/think` 为 ThinkPHP 6 项目的入口文件所在的路径,`crontab` 为需要执行的计划任务的名称,`>/dev/null 2>&1` 表示将输出重定向到空设备,以避免输出干扰 crontab 的正常运行。 注意:在使用 crontab 执行定时任务时,需要注意 PHP 环境变量的设置,以及 PHP 执行权限的问题,否则可能会导致计划任务无法正常执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值