- 浏览: 176590 次
- 来自: 深圳
-
文章分类
最新评论
-
GGGGeek:
MySQL5.7.24varchar(65532)报错:107 ...
int(11)最大长度是多少,MySQL中varchar最大长度是多少?
linux
下crontab调度命令定时执行
PHP
脚本 /
php
文件定时执行
网上随便搜索也
N
多相关资料了,这里就讲下
PHP
程序开发人员需处理的问题。先看下面一行:
*/2 2
0-22 *
*
*
/
bin/sh /
usr/local/web/worksh/cron_env.sh /
usr/local/php/bin/php
/
usr/local/web/mycrontab.php
p
ara_val1
p
ara_val2
(注:每个蓝色加粗字母或
/
前有一个半角空格;另:
p
ara_之间无空格,显示问题
)
这一行看起很长,可以按
5
小节处理,一节节理解;
1>
:
*/2 2
0-22
*
*
*
/
bin/sh
---------
linux
系统
运行定时器文件的时间(五个
*
号,中间有空格)和调度命令(
/
bin/sh
)
五个星(
*
)号分别代表的意义是:分 时 日 月 周 命令
* —
分钟,从
0
到
59
之间的任何整数
* —
小时,从
0
到
23
之间的任何整数
* —
日期,从
1
到
31
之间的任何整数(如果指定了月份,必须是该月份的有效日期)
* —
月份,从
1
到
12
之间的任何整数(或使用月份的英文简写如
jan
、
feb
等等)
* —
星期,从
0
到
7
之间的任何整数,这里的
0
或
7
代表星期日(或使用星期的英文简写如
sun
、
mon
等等)
写法:
*
(星号)表“所有”,
/
(斜杠)表“每隔”,
-
(横杠)表“到”,
,
(英文逗号)表“第”
范例:
0 10,12 * * * /usr/bin/backup
每天
10
点和
12
点执行文件备份;
*/2 2
0-22 *
*
*
/
bin/sh
在每天
20
:
00
到
22
:
00
之间每
2
分钟执行一次
sh
命令;
0
5
-11/2
8
* mon,wed
/
bin/sh
每个月的
8
号和每个礼拜的礼拜一和礼拜三的早上
5
点到
11
点每隔二小时执行一次;
25 3 1,10,22 * * /etc/init.d/apache2 restart
每月
1
、
10
、
22
日的
3 : 25
重启
apache
;
/
bin/sh
调度命令
表示要执行的任务(可以使运行
linux
系统命令
,
也可以是执行你自行编写的
linux
脚本命令)
2> : / usr/local/web/worksh/cron_env.sh 调度命令的执行程序路径(本处为 linux 系统中 sh 的路径)
3>
:
/
usr/local/php/bin/php
第
4
小节文件(本处为
PHP
文件)的执行程序解析文件(或叫编译)
4>
:
/
usr/local/web/mycrontab.php
定时器程序文件(你自己站点或应用的文件)路径
5>
:
p
ara_val1 p
ara_val2
程序文件参数值
(如
web
的
URL
参数一样)(本处为带了
p
ara_val1 p
ara_val2
二个值)
再啰嗦一句:如果 PHP 里要获取这二个值,可以用 $argv[1] 获取第一个值, $argv[2] 获取第二值;
程序开发人员的工作,稍微大点的公司,都不会让你去做运维的事情,所以,理解了上面这行,定时器就基本 OK 了,当然,在提交给运维的时候,别忘了告诉运维,你这程序要在哪台服务器上定时执行。
如果你是在大公司,公司服务器环境也是 linux ,那么下面的扩展知识,你就不用看了!
下面是应付小公司(
1
、公司服务器为非
linux
或者说无法跑
crontab
调度脚本的
2
、干脆就是买了代理服务器空间(新网,万网那种几百兆
XX
空间的),不能设置任何服务器脚本)
方法一:假定时器或叫触发式定时器(本人命名,如有雷同,纯属同一语文老师所教 ! )
如果,你的内容,更新量不大,也不要非常及时;可以在程序开头,写一个判断,(在 txt 或数据库中存储一个判断基数,判断时间),根据用户访问的当前时间,如果未更新,就执行 XX 定时更新文件,反之跳过。
方法二:通过设置
ignore_user_abort()
函数的有效期,来实现定时器PHP
脚本的连接执行(不需用户访问站点);
ignore_user_abort() 可以实现当客户端关闭后仍然可以执行 PHP 代码,可保持 PHP 进程一直在执行,可实现所谓的计划任务功能与持续进程,只需要开启执行脚本,除非 apache 等服务器重启或有脚本有输出,该 PHP 脚本将一直处于执行的状态,初看很实用,不过代价是一个 PHP 执行脚本的持续进程,开销很大,如果你是买的那种 100M 空间,很可能会被服务器管理人员关掉或因他们重启 appache 导致脚本不再执行,所以你应该跟方法一结合使用,到用户访问时,判断这个连接是否正常,如果不正常再次开启;
1> 每隔 15 分钟循环执行
<?php
ignore_user_abort();
set_time_limit(0);
$interval=60*15;
do{
// 执行的业务
}while(true);
?>
自定义实现输出 log 并跟踪 ignore_user_abort() 函数的执行结果
|
<?php ignore_user_abort ( TRUE ); set_time_limit ( 0 ); $interval = 10; $stop = 1; do { if( $stop == 10 ) break; file_put_contents('ignore.log',' Current Time: '.time().' Stop: '.$stop); $stop++; sleep ( $interval ); } while ( true ); ?> |
打开 ignore . log 文件,文件内容如下:
Current Time: 1338878338
Stop: 9
其原理是即使客户端终止脚本,仍然每隔
10
秒钟执行一次,并打印出当前时间与终止点,这样就可以测试出
ignore_user_abort()
函数的具体效果。
if( connection_status () != CONNECTION_NORMAL )
判断是否正常连接。
发表评论
-
PHP+MYSQL大小写问题
2014-11-21 11:33 1637[PHP]一、大小写敏感 1. 变量名区分大小写 所有变 ... -
php基础知识之 ---- echo、print_r、var_dump、调试输出
2014-04-29 18:19 0。。。。。。。。 -
php基础知识之 ---- 过滤、防sql注入
2014-04-29 18:13 0。。。。。。。 -
php基础知识之 ---- 错误处理、异常、错误日志
2014-04-29 18:11 0。。。。。。。。 -
php基础知识之 ---- include 、 require、常量应用
2014-04-29 18:09 0。。。。。。。 -
php基础知识之 ---- 发邮件
2014-04-29 18:05 0。。。。。。 -
php基础知识之 ---- 日期时间
2014-04-29 18:04 0。。。。。。。 -
php基础知识之 ---- 权限及web访问权限
2014-04-29 18:01 0。。。。。 -
php基础知识之 ---- 文件操作
2014-04-29 18:00 0。。。。。。。。。 -
php基础知识之 ---- Cookie
2014-04-29 17:58 0......... -
php基础知识之 ---- Session
2014-04-29 17:58 0..... -
php基础知识之 ---- 数组、foreach
2014-04-29 17:56 0...... -
php基础知识之 ---- 运算符、大数据取模/求余计算得到负数
2014-04-29 17:54 0在写代码的时候,发现对大数字进行%求余(取模)的时候,获得的 ... -
php基础知识之 ---- 三元运算、isset()、empty()
2014-04-29 17:51 0....... -
php基础知识之 ---- 字符串、变量、单引号、双引号
2014-04-29 17:44 0。。。。。。 -
带BOM的utf-8,用json_decode() 返回null的问题 --- 超过3个bom字符
2014-03-17 12:01 2682PHP中file_get_contents函数获取URL文件 ... -
Parse error: syntax error, unexpected '}'
2014-02-12 17:53 1635Parse error: syntax error, une ... -
超实用的PHP代码片段
2013-11-22 15:48 959一、查看邮件是否已被阅读当你在发送邮件时,你或许很想知道该 ... -
8 个PHP功能开发
2013-10-28 17:10 11111、传递任意数量的函数参数 我们在.NET或者JA ... -
三个超好用的PHP加密解密函数
2013-10-28 16:24 4214三个超好用的PHP加密解密函数,貌似是discuz里的…使用 ...
相关推荐
在Linux系统中,`cron` 是一个后台服务程序(daemon),用于调度周期性任务。它按照预定的时间间隔执行用户定义的任务,例如运行脚本或执行命令等。`crontab` 则是管理这些定时任务的工具,它允许用户创建、编辑和...
Cron是Linux系统中的一个守护进程,用于调度周期性执行的任务或脚本。Cron通过读取每个用户的crontab文件来确定哪些任务需要被执行,以及何时执行。本文将深入解析Crontab命令的格式、参数及其在实际场景中的应用。 ...
Linux 下的定时执行脚本是通过使用 crontab 文件来实现的。 crontab 文件中包含了一些计划任务,可以根据需要进行添加、删除和修改。下面将详细介绍 Linux 下的定时执行脚本的设置和使用。 环境变量设置 在 Linux ...
`Linux crontab` 是一个强大的任务调度命令,用于在特定的时间间隔或特定时间执行自动化任务。然而,标准的 `crontab` 配置并不能支持每秒执行任务,因为其最小的时间单位是分钟。但通过一些技巧,我们可以实现每秒...
在Linux系统中,`crontab` 是一个强大的任务调度工具,用于自动化周期性的系统或用户任务。然而,有时我们可能会遇到这样的问题:在终端中能够正常运行的shell脚本(`.sh` 文件),在通过`crontab` 安排时却无法执行...
在Linux系统中,Crontab 是一种强大的定时任务调度工具,通常用于按设定的时间间隔执行特定的任务。然而,Crontab 默认的精度只到分钟,无法实现秒级定时任务。要实现在Linux中进行秒级定时任务,我们需要通过编写...
这个“crontab离线包.zip”包含的是与`crontab`相关的软件包,用于在Linux环境中安装和管理任务调度。资源难寻且可能需要积分下载,这表明这些软件包在某些情况下可能比较稀缺。 `crontab`是Linux下的一个守护进程...
Linux系统中的crontab命令是一个强大的定时任务调度工具,用于设置周期性被执行的任务。通过crontab,我们可以设定特定时间执行指定的命令或者脚本,以实现自动化维护和管理。以下是对crontab命令的详细解析: 1. *...
`crontab`是一个Unix/Linux系统中的计划任务调度命令,它允许用户按照设定的时间间隔运行指定的程序或脚本。原生的`crontab`依赖于系统的守护进程,可能在资源有限的环境中不那么理想。Go语言版本的`crontab`可能...
Linux下的crontab命令是一个非常重要的工具,用于设置周期性的任务调度,比如定时执行脚本、备份文件等。本文将详细介绍如何使用crontab来定时触发命令,以及相关的配置和注意事项。 首先,为了实现定时备份MySQL...
Linux中的Crontab是一个强大的定时任务调度工具,用于在特定的时间点执行预定义的任务。它源自希腊词"chronos",意为“时间”。Crontab允许系统管理员和普通用户安排自动化任务,如定期备份、日志清理、系统维护等。...
### Linux Cron调度命令详解 #### 一、Cron简介 Cron是Linux系统中的一个非常重要的后台服务,它主要用于管理周期性的重复任务。通过cron,我们可以轻松地安排各种任务自动执行,比如定时备份数据、定时清理日志...
通过crontab调度,系统将在设定的时间自动执行监控脚本,确保在资源异常时能及时通知运维人员,从而提高系统的稳定性和可用性。 记住,为了确保脚本的正常运行,需要给予执行权限,如`chmod +x monitor.sh`,并且...
crond是Linux系统中的定时任务调度工具,它读取位于`/var/spool/cron`目录下的cron文件,并按照其中的规则执行相应的命令或脚本。 为了配置crond任务,可以使用`crontab`命令编辑cron文件: ```bash crontab -e ```...
在Linux系统中,`crontab`是一个强大的定时任务调度工具,它允许用户安排命令或脚本在特定的时间点执行。然而,在实际使用中,有时会遇到`crontab`命令的输出重定向不生效的问题,这可能会导致无法正确记录和分析...
综上所述,"Linux下清理数据库shell脚本"涉及了Linux系统管理、数据库备份策略、shell脚本编程、任务调度和错误处理等多个方面。通过编写这样的脚本,我们可以实现自动化运维,提高工作效率,同时保障数据的安全性和...
本文全面讲解了 Linux 系统中 crontab 的使用方法,帮助用户快速掌握定时任务的配置和管理。首先,介绍了 crontab 的基本概念及其依赖的 cron 服务,并详细说明了时间调度字段的含义及其灵活用法,如星号、逗号、...
Crontab是Unix类系统中用于自动化任务调度的一个强大工具,它允许用户按照预设的时间间隔运行命令或脚本。 1. **Crontab基础** - Crontab允许用户定义定时任务,格式包括分钟、小时、日期、月份和星期,以决定何时...