Windows中使用计划任务自动执行PHP程序实例

Windows中使用计划任务自动执行PHP程序实例,第1张

所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户 *** 作的目的。利用Windows

2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本、程序或文档在最恰当的时候运行,从而满足自己的需要。下面以Windows

2000为例。

具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤:

单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"任务计划"(或者是"设置"→"控制面板"→"任务计划"),启动Windows

2000的任务计划管理程序。

在"任务计划"窗口中双击"添加任务计划"图标,启动系统的"任务计划向导",然后单击"下一步"按钮,在给出的程序列表中选择需要自动运行的应用程序,然后单击"下一步"按钮。

设置适当的任务计划名称并选择自动执行这个任务的时间频率(如每天、每星期、每月、一次性、每次启动计算机时、每次登录时等),然后单击"下一步"按钮。

此时系统将会要求用户对程序运行的具体时间进行设置,如几号、几点钟、哪几个时间段才能运行等,我们只需根据自己的需要加以设置即可。

接下来系统将会要求用户设置适当的用户名及密码(如图5所示),以便系统今后能自动加以运行。

最后,我们只需单击"完成"按钮即可将相应任务添加到Windows

2000的任务计划程序中,此后它就会自动"记住"这个任务,一旦系统时间及相关条件与用户设置的计划相符,它就会自动调用用户所指定的应用程序,十分方

便(每次启动Windows

2000的时候,任务计划程序都会自动启动,并在后台运行,确保用户的计划能够按时执行)。

现在我们来测试一下刚才所建的任务是否成功,鼠标右键单击"php"程序图标(如图6所示),在d出的菜单里面选择"运行"。一般情况下程序图标只要这样

激活运行就可以正常启动。如果运行失败可查看用户和密码是否设置正确,还有确定"Task

Scheduler"服务是否已启动,本人当初就是为了节省系统资源把它关掉了导致运行失败,害我找了大半天。另外也可从"系统日志"里查看到底是什么原

因造成运行失败的。

好了,讲了这么多任务计划的应用,现在我们切入正题,下面将介绍两个例子:

一、让PHP定时运行

编辑如下代码,并保存为test.php:

复制代码

代码如下:

<?php

$fp

=

@fopen("test.txt",

"a+")

fwrite($fp,

date("Y-m-d

H:i:s")

.

"

让PHP定时运行吧!\n")

fclose($fp)

?>

可以用 windows 自带的计划任务(计算机->右键->任务计划程序),在这里面添加任务计划,和linux下的 crontab 差不多。 那么再说怎么样执行php脚本呢,php有命令行模式(php cli,这个可以百度一下 php cli),大概使用方式如下。

1:新建一个 bat文件,然后在里面输入 php -f d:\index.php ,当然这种写法是需要把php添加到环境变量的,也就是在cmd里输入php回车是有响应的。

2:这个 bat 文件建立好以后,我们可以双击试运行一下,如果没问题那么就是添加任务计划。

3:打开我们最开始说的 任务计划程序,在里面添加任务,选择执行这个bat文件,然后设置时间等一些规则,就可以了,不知道你的知识学习的怎么样,这里只是给你一个整体的思路和具体解决办法。

php做不到每天定时执行,只有java或者c可以,因为php是不访问页面就不会动得代码,但是有一个方法可以曲线救国

你写一个页面是你要每天定时执行的页面,然后视你的 *** 作系统而言,做定时任务,定时去访问这个页面

如果是windows请使用任务计划功能

如果是linux请使用定时任务Cron,在定时的时候使用curl来访问你那个页面。以下我只贴出linux的解决方案,因为一般服务器都是linux的,windows的大家都会

=========================linux cron 入门 ============================

Linux *** 作系统定时任务系统 Cron 入门

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:

在/etc/rc.d/rc.local这个脚本的末尾加上:

/sbin/service crond start

现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:

1.直接用crontab命令编辑

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除没个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l

再例如,root想删除fred的cron设置:crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >>/tmp/ls.txt

任务调度的crond常驻命令

crond 是linux用来定期执行程序的命令。当安装完成 *** 作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

1、linux任务调度的工作主要分为以下两类:

     *系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存

     *个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

2.crontab命令选项:

     -u指定一个用户,

     -l列出某个用户的任务计划,

     -r删除某个用户的任务,

     -e编辑某个用户的任务

3.cron文件语法:

           分     小时   日       月       星期     命令

         0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)

4.记住几个特殊符号的含义:

         "*"代表取值范围内的数字,

         "/"代表"每",

         "-"代表从某个数字到某个数字,

         ","分开几个离散的数字

一、任务调度设置文件的写法

       可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件

具体格式如下:

       Minute Hour Day Month Dayofweek   command

       分钟     小时   天     月       天每星期       命令

每个字段代表的含义如下:

     Minute             每个小时的第几分钟执行该任务

     Hour               每天的第几个小时执行该任务

     Day                 每月的第几天执行该任务

     Month             每年的第几个月执行该任务

     DayOfWeek     每周的第几天执行该任务

     Command       指定要执行的程序

     在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。

举例如下:

5       *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令

30     5       *           *     *     ls             指定每天的 5:30 执行ls命令

30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令

30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令

30     6       *           *     0     ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30     3     10,20     *     *     ls     每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

25     8-11 *           *     *     ls       每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

*/15   *       *           *     *     ls         每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

30   6     */10         *     *     ls       每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ]

每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

50   7       *             *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

二、新增调度任务

新增调度任务可用两种方法:

         1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。

         2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

三、查看调度任务

         crontab -l //列出当前的所有调度任务

         crontab -l -u jp   //列出用户jp的所有调度任务

四、删除任务调度工作

         crontab -r   //删除所有任务调度工作

五、任务调度执行结果的转向

     例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中

         30 5 * * * ls >/jp/test 2>&1

     注:2>&1 表示执行结果及错误信息。

编辑/etc/crontab 文件配置cron  

cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:  

SHELL=/bin/bash  

PATH=/sbin:/bin:/usr/sbin:/usr/bin  

MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号  

HOME=/ //使用者运行的路径,这里是根目录  

# run-parts  

01   *   *   *   *     root run-parts /etc/cron.hourly         //每小时执行/etc/cron.hourly内的脚本  

02   4   *   *   *     root run-parts /etc/cron.daily           //每天执行/etc/cron.daily内的脚本  

22   4   *   *   0     root run-parts /etc/cron.weekly       //每星期执行/etc/cron.weekly内的脚本  

42   4   1   *   *     root run-parts /etc/cron.monthly     //每月去执行/etc/cron.monthly内的脚本  

大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了

例如:         1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。

         2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务

11 2 21 10 * rm -rf /mnt/fb


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8074340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存