|
crontab 是用来让使用者在固定时间或固定间隔执行程序之用 在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现。 以某一频率执行任务 linux缺省会启动crond进程,crond进程不需要用户启动、关闭。 crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。 cron的调度文件有以下几个:
1. crontab 2. cron.d 3. cron.daily 4. cron.hourly 5. cron.monthly 6. cron.weekly
如果用的任务不是以hourly monthly weekly方式执行,则可以将相应的crontab写入到crontab 或cron.d目录中。 示例: 每隔一分钟执行一次脚本 /opt/bin/test-cron.sh 可以在cron.d新建脚本 echo-date.sh 内容为 */1 * * * * root /opt/bin/test-cron.sh
执行PHP脚本
方法1 如果你想定时执行某一个PHP脚本 可以直接这样写: */1 * * * * root -q /bin/local/php /path/to/your/php/script.php (每一分钟执行一次script.php) 注意,这样写需要把PHP变成可执行的脚本文件。在命令行下,脚本所在目录 chmod x script.php
方法2 上面的方法有一个问题:当script脚本中有include文件时,脚本根本找不对PHP的路径,php将会在/bin/local/php目录下找文件,当然找不到。 所以,遇见这种情况,按照下面的方法做: 在终端上输入如下命令得到sh 和 lynx 程序的路径: whereis sh whereis lynx or which sh which lynx 随便输入一个,其中便会返回你要的路径。如果你的系统里没有lynx,试试links,w3m,或者 links2,这些是其它的文本模型浏览器。这些浏览器将会运行你的脚本。 然后你需要创建一个sh文件,用它来调用php文件,通过lynx。假设你的服务器已经安装了lynx,sh路径为 /bin/sh,lynx路径为 /usr/local/bin/lynx #!/bin/sh /usr/local/bin/lynx -source http://www.yoursite.com/folder/script.php 注意感叹号 把这个脚本保存为cron-lynx.sh 保存到一个你找得到的地方,比如:
你可以把它放在网站根目录。 然后再创建一个script.php的文件。当cron运行的时候,将会通过lynx来调用它。这个文件可以通过浏览器来访问。
然后编辑主机的crontab,像下面这样。 */1 * * * * root /bin/sh /usr/www/yourdirectory/sh_scripts/cron-lynx.sh 在/bin/sh 和 /usr 间有空格。就这样就设好了,还有一点要注意的是,你的sh文件和php文件都正确无误。
例子1
[b]在linux下定时执行PHP脚本[/b] 按正常的方式写PHP $file = '/htdocs/www/b100/egspace/Bin/test/'.date('H').'-'.date('i').'-'.date('s').'.txt'; file_put_contents($file,date('Y-m-d')); ? |