linux中定时运行php(每分钟执行一次为例)

注:使用Crontab定时执行php脚本文件

1. 安装crontab

yum install crontabs

说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务(/bin/systemctl restart crond.service)
/sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动:
chkconfig –level 35 crond on

注:可以使用systemctl list-units命令查看crond服务有没有开启

2.crontab -e,进入编辑页面,i键进入编辑模式 

参  数:

-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

crontab 格式:

基本格式 :

分钟   小时   日   月   星期   命令

*        *      *    *     *       *

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

记住几个特殊符号的含义: 
“*”代表取值范围内的数字, 
“/”代表”每”, 
“-”代表从某个数字到某个数字, 
“,”分开几个离散的数字 

本例中执行:* */1 * * *  /usr/bin/php /www/wwwroot/snow/test.php  设置每分钟执行一次test.php文件 Esc->:wq退出保存 (*/1 * * * *也代表每一分钟执行)

注:/usr/bin/php  //调用php  

  /www/wwwroot/snow/test.php   //需要执行的php文件

 3.可以执行命令:tail -f /var/log/cron可以查看corntab的执行情况(ctrl+c退出)

 

 4.thinkphp 中的实践操作:

    1)控制器:

namespace app\admin\command;

use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\Db;
use think\Log;

class AutoTest extends Command
{
protected function configure()
{
$this->setName('autoTest')->setDescription("定时任务测试");
}

//调用这个类时,会自动运行execute方法
protected function execute(Input $input, Output $output)
{
$output->writeln('Date Crontab job start...');
/*** 这里写计划任务列表集 START ***/

/**需要执行的代码**/

/*** 这里写计划任务列表集 END ***/
$output->writeln('Date Crontab job end...');
}
}

2)command.php中加入:
return [
'app\admin\command\AutoTest',
];

3)定时任务:
*/1 * * * * sudo -u www /www/server/php/72/bin/php /www/wwwroot/project/think autoTest

 参考链接:https://blog.csdn.net/jueyan520/article/details/86242257  (感谢分享)

                  https://www.cnblogs.com/jingmin/p/9687905.html(感谢分享)

     https://blog.csdn.net/zixuan701/article/details/88536003 (感谢分享)

posted @ 2019-10-31 10:53  北往星辰  阅读(3453)  评论(0编辑  收藏  举报