• 服务器上定时自动执行php


    两种方式:

    一、Linux 服务器
    Linux原生支持crontab,所以可以利用这一功能做定时任务

    步骤:

    1、编辑crontab文件:
    Linux:crontab -e

    2、输入代码:
    0 0 * * 6 /etc/init.d/httpd restart && /etc/init.d/mysqld restart
        代码解释:每周六0点自动重启apache和mysql,第一项(前面5位)是时间设置,具体格式百度之,不赘述,下同;
        第二项是apache所在目录,
        第三项上执行具体方法,
        后面的&&可以连写,也可以删除&&后,换行,即也可以这么写:
    0 0 * * 6 /etc/init.d/httpd restart
    0 0 * * 6 /etc/init.d/mysqld restart

    0 9 * * * /usr/bin/curl http://www.website.com/Index/test
        代码解释:每天上午9点自动执行一次http://www.website.com/Index/test方法
        第二项代表curl所在目录,
        第三项代表所要执行的url
        (若要执行PHP文件,与此格式类似,具体百度之。。)

    esc
    :wq 保存

    二、Windows服务器:
    Windows服务器可以利用系统的计划任务实现

    步骤:

    1、创建一个bat批处理文件,如:
    D:xamppphpphp.exe -q D:xampphtdocs est.php
    保存为test.bat,第一项为php.exe所在目录,第二项为需要执行的php文件路径

    2、test.php文件写入:
    <?php
    file_put_contents('test.txt',date('Y-m-d H:i:s')." success! ",FILE_APPEND);
    ?>
    此仅为测试用,具体代码可自行编写(本例是只要执行test.bat,就调用test.php,往test.txt里面写入一段字符串)

    3、设置系统计划任务,定时执行test.bat

    4、不通过php文件所在路径,而是用网址呢,windows下新建test.bat,添加内容如下:

    @echo off
      rem 关闭回显
      start "C:Program FilesInternet Exploreriexplore.exe" "http://www.abc.com/test.php"
      rem 使用浏览器打开url地址,5秒后自动关闭ie
      ping 127.0.0.1 -n 5 >nul
      taskkill /im iexplore.exe /f

    放在windows计划任务里执行

    用PhantomJS或者类似的东西替代浏览器,消耗应该会很小

  • 相关阅读:
    洛谷P6218 [USACO06NOV] Round Numbers S 题解 数位DP
    Duilib的双缓冲实现,附带GDI、WTL的双缓冲实现
    关于热键HotKey与WM_KEYDOWN的一点心得
    源码不匹配,找到了xxx的副本。
    SetForegroundWindow的失效问题: 跨进程的窗口前置。
    2021年4月的一份总结
    制作msi文件,exe转msi文件。
    内存限制
    ISPRS Vaihingen 数据集解析
    Linux中sudo、su和su -命令的区别小结
  • 原文地址:https://www.cnblogs.com/feng18/p/6433526.html
Copyright © 2020-2023  润新知