服务器定时执行计划任务,定时访问页面(windows/linux)

经过我们选的一种又简单一句话就解决了问题

explorer "http://www.jb51.net?opt=make"

将上面的代码保存为dositemap.bat即可。然后添加到计划任务

一、windows计划任务

1、写一个PHP程序,命名为test.php,内容如下所示:

<?
  $fp = fopen("test.txt", "a+");
  fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n");
  fclose($fp);
?> 

程序大胆地写,什么include\require尽管用,都没问题

2、新建Bat文件,命名为test.bat,内容如下所示:

D:\php\php.exe -q D:\website\test.php

自己写的bat文件,定时打开页面,并关闭ie浏览器

explorer.exe open=http://www.jb51.net
Ping -n 80 127.1>nul
Taskkill /f /im "iexplore.exe"

3、建立WINDOWS计划任务:
开始–>控制面板–>任务计划–>添加任务计划
浏览文件夹选择上面的bat文件
设置时间和密码(登陆WINDOWS的)
保存即可了。
4、over! 可以右键计划任务点“运行”试试

二、Linux 的脚本实现

一、在Crontab中使用PHP执行脚本
就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。
每一小时执行myscript.php如下:

**# crontab -e**
00 * * * * /usr/local/bin/php /home/john/myscript.php 

/usr/local/bin/php为PHP程序的路径。

二、在Crontab中使用URL执行脚本
如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。
下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

00 * * * * lynx -dump http://www.centos.bz/myscript.php 

下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。

*/5 * * * * /usr/bin/curl -o temp.txt http://www.centos.bz/myscript.php 

下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。

*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.centos.bz/myscript.php 

三、PHP实现定时执行计划任务
使用php让浏览器刷新需要解决几个问题
1.PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
2.如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
3.如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行
PHP定时执行的代码:

<?php
  ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
  set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去
   $interval=5;// 每隔5s运行  

   //方法1--死循环
   do{
    echo '测试'.time().'<br/>';
    sleep($interval);// 等待5s
  }while(true);  

  //方法2---sleep 定时执行
   require_once './curlClass.php';//引入文件  

   $curl = new httpCurl();//实例化
   $stime = $curl->getmicrotime();
  for($i=0;$i<=10;$i++){  

    echo '测试'.time().'<br/>';
    sleep($interval);// 等待5s  

  }
  ob_flush();
  flush();
  $etime = $curl->getmicrotime();
  echo '<hr>';
  echo round(($etime-stime),4);//程序执行时间

测试的时候发现这个效率并不是很高
总结:
建议关于定时执行任务的工作还是交给shell来做吧,比较那才是王道。

(0)

相关推荐

  • 在win和Linux系统中python命令行运行的不同

    今天,在完成一个小的python习题,习题的主要内容是读取一个帮助模块,并保存到本地文件. 知道是用pydoc进行模块的读取,但是在windows系统下,调用os模块之后,结果总是为空. 核心语句: helpfile = os.popen('pydoc %s' %module).read() 此语句在Linux下可以正常运行,结果正常. 后来发现,在Windows下,该修改为: helpfile = os.popen('python -m pydoc %s' %module).read() 命令

  • 配置java环境变量(linux mac windows7)

    linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车.之后会在当前目录下生成一个jdk1.6.0_14目录,你可以将它复制到 任何一个目录下. 二. 需要配置的环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路

  • 详解Linux文本文件与WIN文本文件换行格式转换命令

    详解Linux文本文件与WIN文本文件换行格式转换命令 前言: 有 时在WIN下编辑好的脚本文件上传到LINUX服务器中不能正常执行,开始误认为是LINUX配置问题,后来发现,是WIN与LINUX存储文件时的换行 符标志不同造成的.在DOS使用的换行符为 ^M$,我们称为CR与LF两个符号.而在Linux中,则仅有LF ($) 这个换行符. 可以用如下命令完成格式转换:$dos2unix,$unix2dos.但这两个命令在UBUNTU发行版本中不存在,可通过: $sudo apt-get ins

  • windows及linux环境下永久修改pip镜像源的方法

    一.在windows环境下修改pip镜像源的方法(以python3.5为例) (1):在windows文件管理器中,输入 %APPDATA% (2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件 (3):在新建的pip.ini文件中输入以下内容,搞定 [global] timeout = 6000 index-url = http://pypi.douban.com/simple trusted-host = pypi.douban.com

  • Windows或Linux系统中备份和恢复MongoDB数据的教程

    windows下面mongodb数据库备份和恢复 我可以讲数据备份到c:\data\dump目录下面,首先创建这个路径.然后进入到mongodb的bin目录下面 我的是: C:\Program Files\mongodb\bin 备份脚本是: //备份 mongodump -h 127.0.0.1:27017 -d test -o c:\data\dump 恢复脚本是: //恢复 mongorestore -h 127.0.0.1:27017 -d test --directoryperdb c

  • Linux中mkdir函数与Windows中_mkdir函数的区别

    下面先来给大家介绍windows下_mkdir函数 复制代码 代码如下: #include<direct.h> int _mkdir( const char *dirname ); 参数: dirname是目录的路径名指针 返回值: 如果新目录的创建时间,这些功能中的每一个返回值 0. 在错误,则函数返回 – 1 linux下mkdir函数mode_t参数详解 复制代码 代码如下: #include <sys/stat.h> int mkdir(const char *path,

  • Windows Azure 平台重置Linux密码的方法

    好久没有更新了,近期我会把手里在Azure遇到的一些问题,分享给大家没有太多的虚言,一些实际干货,今主要介绍一下,Azure平台的Linux虚拟机,忘记了密码,账户怎么重置. 1.使用PowerShell下载Azure订阅文件 2.下载订阅如图: 3.下载配置文件后,使用记事本打开,更改订阅Azure订阅名称,以便于后续管理Azure多个订阅方便识别管理,如图: 4.Azure订阅下载后,导入订阅文件 5.使用名称,查看目前Azure订阅账户,切换到操作Azure订阅账户下,如图: 6.目前只有

  • Linux/UNIX和Window平台上安装Mysql

    所有平台的Mysql下载地址为:MySQL 下载. 挑选你需要的 MySQL Community Server 版本及对应的平台. 一.Linux/UNIX上安装Mysql Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: MySQL - MySQL服务器.你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器. MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器. MySQL-devel - 库和包含文

  • 如何解决windows系统和linux系统中端口被占用的问题

    一.在windows操作系统中,查询端口占用和清除端口占用的程序 提升权限后用:netstat -b 或用 1.查询端口占用的进程ID 点击"开始"-->"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令: netstat -a -n  各个端口占用 netstat -ano   各个端口占用和进程PID          netstat -aon | findstr "80"      C:

  • 服务器定时执行计划任务,定时访问页面(windows/linux)

    经过我们选的一种又简单一句话就解决了问题 explorer "http://www.jb51.net?opt=make" 将上面的代码保存为dositemap.bat即可.然后添加到计划任务 一.windows计划任务 1.写一个PHP程序,命名为test.php,内容如下所示: <? $fp = fopen("test.txt", "a+"); fwrite($fp, date("Y-m-d H:i:s") . &qu

  • PHP定时执行计划任务的多种方法小结

    PHP定时执行的三种方式实现 1.windows 的计划任务 2.linux的脚本程序 3.让web浏览器定时刷新 具体实现 windows计划任务 PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本,具体可以参考:http://www.jb51.net/article/29134.htm linux 的脚本实现 这里主要使用到crontab这个命令, 使用方式 : crontab filecrontab [ -u

  • Asp定时执行操作 Asp定时读取数据库(网页定时操作详解)

    目前定时的操作有: 一.Html页面的定时刷新(Refresh--刷新 ) 1,Refresh (刷新) 代码使用说明 说明:让网页多长时间(秒)刷新自己,或在多长时间后让网页自动链接到其它网页. 用法:<Meta http-equiv="Refresh" Content="30"> <Meta http-equiv="Refresh" Content="5; Url=http://www.jb51.net"

  • 如何在thinkphp中使用windows计划任务定时执行php文件

    实现思路如下: 通过win的"任务"功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数指定执行哪个类和方法 方法如下: 一,thinkphp开启cli支持 1.tp正好支持cli命令模式,手册的路径为13.7.4 如果是用的其他框架不支持cli,那么只能直接写程序了,其实就是写面向过程的最基础的php代码. 2.在入口文件下开启命令,加入一句 define('MODE_NAME', 'cli'); 网站一般还有可以通过网页访问的模块,所以可以新

  • MySQL定时执行脚本(计划任务)命令实例

    查看event是否开启 复制代码 代码如下: show variables like '%sche%'; 将事件计划开启 复制代码 代码如下: set global event_scheduler =1; 创建存储过程test 复制代码 代码如下: CREATE PROCEDURE test () BEGIN update examinfo SET endtime = now() WHERE id = 14; END; 创建event e_test 复制代码 代码如下: create event

  • win7计划任务定时执行PHP脚本设置图解

    做php开发的朋友有时候会希望自己的电脑能每天定时的运行一下某个脚本,但定时执行php脚本这种概念似乎多半是在linux中才提到,下面这篇文章主要和大家分享一下在win7下如何设置计划任务,以实现定时执行我们的php脚本. 1.如下图依次选择 "开始"--->"所有程序"--->"附件"--->"系统工具"--->"务计划程序" 2.在打开的面板中选择"创建任务"

  • window设置任务计划定时执行 git 更新(git pull)并隐藏运行cmd

    windows计划任务 开始 > 管理工具 > 任务计划程序 首先创建一个bat文件.命名为:XXXX.bat, 内容如下: @echo off D: cd \share\doc git pull \share\doc:是git项目目录.创建完,手动双击执行一下该bat文件,是否正常.正常的情况是:双击就会进行更新将该bat文件放在自己相中的位置,比如D盘根目录.添加windows任务计划 schtasks /create /sc minute /mo 5 /tn "自动更新-git

  • linux系统下定时执行php脚本的方法

    前言 在windows服务端定时执行某个程序代码还是比较简单的,只要在系统中做定时任务就可以了,目前刚刚接触到linux下的定时任务,这在好多公司的面试中都会提到的,而对于linux小白的我来说,是个不小的挑战,听单位的同事说,linux定时执行PHP脚本也是很简单的,linux系统实现计划任务一般采用crontab工具,好了,目前分享一个可以执行成功的php脚本,供大家参考了. 1. 在需要定时执行的PHP文件的第一行加 view plain copy #! /bin/local/php -q

  • php定时执行任务设置详解

    今天有一个哥们问我这个问题,问题是这样的他有一个iis的服务器,要定时执行一个扫描的php脚本,这个怎么弄,每小时执行一次,下面是windows的设置 1)在控制面板中双击任务计划,打开了Windows任务计划窗口. 2)双击添加任务,打开任务计划向导.点击下一步. 3)点击浏览,选择要运行的程序 4 ) 输入计划名称,选择 每天 5)设置起始时间.选择每天.起始日期.下一步. 6)输入密码,该密码是该系统的用户名(用 默认 即可)的密码.下一步 7)选择在单击完成时,打开此任务的高级属性. 8

  • Cpanel下Cron Jobs定时执行PHP的方法

    打开cpanel管理后台,在"高级"的选项下有一个"时钟守护作业",如下图,点击进入. 设置页面有三大选项:Cron Email(通知邮箱地址,每次定时执行成功或失败都会通知这个邮箱).Add New Cron Job(添加新的定时任务).Current Cron Jobs(当前已有的定时任务). 主要是设置 Add New Cron Job 选项,如下图: 图上的是每隔5分钟执行一次 command 命令: command命令:"php /home/pi

随机推荐