概念:crontab命令用于设置周期性被执行的指令
crontab文件格式:
* * * * * command
minute hour day month week command
分 时 天 月 星期 命令
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中(分,时,天,月,周),还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,
例如*/10,如果用在minute字段,表示每十分钟执行一次。
image.png
crontab -e 编辑定时任务【删除-添加-修改】 按i键后输入,按esc退出后输入:wq进行保存
crontab -l 查看crontab定时任务
简单实例:
第一步:在服务器建立个空文件夹,在文件夹里创建一个sh文件,例如
image.png
第二步在sh文件里输入
cd /www/wwwroot/example
echo "hahahha" >> 1.txt
第三步输入命令crontab -e 后输入
* * * * * bash /www/wwwroot/example/example.sh
第四步在example文件下会生成1.txt文件,使用cat命令查看
image.png
thinkphp5.1/5.0定时任务,详细操作步骤!
1.新建command文件
在application/模块/新建一个command文件夹/Test.class.php
namespace app\admin\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
class Test extends Command
{
protected function configure(){
$this->setName('Test')->setDescription("计划任务 Test");
}
protected function execute(Input $input, Output $output){
$output->writeln('Date Crontab job start...');
/*** 这里写计划任务列表集 START ***/
$this->test();
/*** 这里写计划任务列表集 END ***/
$output->writeln('Date Crontab job end...');
}
private function test(){
echo "test\r\n";
}
}
2.配置command.php文件,位置在application/command.php
return ['app\admin\command\Test'];
3.运行test命令本地测试下
打开命令行,运行php think Test命令test命令execute方法中运行的方法就会运行
image.png
4:设置crontab计划任务
*/1 * * * * php /www/wwwroot/turing/think Test >> /www/wwwroot/turing/runtime/2021.log 2>&1
注意:
image.png