linux使用crontab实现PHP执行计划定时任务
首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用crontab工具来配置cron任务。所有用户定义的crontab都被保存在/var/spool/cron目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个crontab项目,登录为该用户,然后键入crontab-e命令来编辑该用户的crontab。该文件使用的格式和/etc/crontab相同。当对crontab所做的改变被保存后,该crontab文件就会根据该用户名被保存,并写入文件/var/spool/cron/username中。cron守护进程每分钟都检查/etc/crontab文件、etc/cron.d/目录、以及/var/spool/cron目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个crontab文件改变后就不必重新启动守护进程了。
安装crontab:
yuminstallcrontabs
说明:
/sbin/servicecrondstart//启动服务
/sbin/servicecrondstop//关闭服务
/sbin/servicecrondrestart//重启服务
/sbin/servicecrondreload//重新载入配置
查看crontab服务状态:servicecrondstatus
手动启动crontab服务:servicecrondstart
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig?level35crondon
crontab命令:
功能说明:设置计时器。
语 法:crontab[-u<用户名称>][配置文件]或crontab[-u<用户名称>][-elr]
补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:
MinuteHourDayMonthDayOFWeekCommand
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
crontab格式:
基本格式:
分钟 小时 日 月 星期 命令
* * * * * *
第1列表示分钟1~59每分钟用*或者*/1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
#Usethehashsigntoprefixacomment
#+—————-minute(0?59)
#|+————-hour(0?23)
#||+———-dayofmonth(1?31)
#|||+——-month(1?12)
#||||+—-dayofweek(0?7)(Sunday=0or7)
#|||||
#*****commandtobeexecuted
crontab几个例子如下:
(1)第一个例子。
3021***/etc/init.d/nginxrestart
每晚的21:30重启nginx。
(2)第二个例子,也就是本教程测试的例子
*****/usr/bin/php-f/root/test.php>>test.log
每一分钟执行/root/test.php文件,将结果输出到test.log中。
完成了上面基础工作后,就来看看怎么使用crontab定时执行PHP脚本:
(1)我在/root下新建test.php文件,内容如下:
<?php
#!/usr/bin/php-q
echo date("Y-m-dH:i:s")."fromhttp://www.phpddt.com\n";
?>
说明:你可以用whereisphp查找php执行文件位置。
(2)然后crontab-e编写如下shell:
*****/usr/bin/php-f/root/test.php>>test.log
说明:test.php必须为可执行文件:chmod+xtest.php
测试结果很正常,截图如下:
当然你可以用使用crontab-e继续添加任务,在/var/spool/cron下你可以看到一个root文件。
windows下直接用windows计划任务,通过bat打开网页就可以了。不像linux这么复制。
相关文章
- PHP连接linux并执行命令,php实现ssh远程连接服务器并操作服务器,PHP跨服务器执行shell脚本
- Linux中如何添加文件执行权限(linux加执行权限)
- Linux脚本实现定时后台任务(linux脚本后台执行)
- 给Linux文件增加执行权限(linux添加执行权限)
- Linux文件INode:深入理解文件系统底层存储结构(linux文件inode)
- 加速Linux驱动下的PHP后端性能提升(linux让php后台)
- Linux命令在虚拟机中实现(虚拟机执行linux命令)
- Linux下如何更改网卡名称(linux修改网卡的名字)
- Linux架构:多种形式供你选择(linux架构有几种)
- 脚本Linux定时执行脚本:一小时的持续运行(linux每小时执行一次)
- ?追寻Linux之父:Linus Torvalds(linux之父是谁)
- 掌握Linux的强大拷贝功能:从文件到目录(linux拷贝文件或目录)
- Linux执行Perl脚本:一步一步指导(linux执行perl)
- 网址探索Linux下如何Ping网址(linux怎么ping)
- Linux 下双拼输入法使用指南(linux双拼输入法)
- 利用Linux 漏洞防护:有效降低攻击风险(linux漏洞)
- 深入了解 Linux 文件种类和用途(linux文件种类)
- 「Linux下的PHP开发」(linux开发php)
- “提升Linux系统执行效率:设置超时时间”(linux设置超时)
- Linux内存条型号搜索指南(linux内存条型号)
- 文件Linux下执行文件的使用指南(linux可执行)
- 利用Linux操作系统开发的智能聊天软件(linux下的聊天程序)
- 制作高效优质补丁:Linux补丁制作全解析(linux补丁制作)
- 最实用的Linux调试技巧一览:25条必备知识(linux调试)
- Linux脚本执行权限探究展开(linux 脚本执行权限)
- Linux查看声卡驱动的简便方法(linux查看声卡驱动)
- linux下安装apache与php;Apache+PHP+MySQL配置攻略