linux crontab计划任务

1.确认crontab是否安装:
执行 crontab 命令如果报 command not found,就表明没有安装
或者使用 rpm -q vixie-cron 命令
2. 安装 crontab
执行 yum install -y vixie-cron
3. 确认是否安装成功:
执行 crontab -l
4. 看是否设置了开机自动启动
chkconfig --list crond

       Linux下的7个运行级别:

0系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。

1单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。

2多用户状态,没有NFS支持。

3完整的多用户模式,有NFS,登陆后进入控制台命令行模式。

4系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。

5X11控制台,登陆后进入图形GUI模式,X Window系统。

6系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启。
5. 启动crontab
service crond start

首先,确认 PHP 可执行文件的位置 —— 对于大多数 Linux 系统,几乎肯定是 /usr/bin/php。如果不确定其位置,请在命令行中键入 which php 并查看响应内容。

其次,键入以下代码,确保将 /usr/bin/php 替换为 PHP 可执行文件的实际路径。

<?php
#!/usr/bin/php -q
print date("Y-m-d H:i:s")."\n";
?>

权限与转码

#chmod +x test.php
#dos2unix test.php

crontab  -e

按其语法定义即可

例如5分钟运行一次

*/5 * * * * /website/test.php >> /dev/null &

或者另外一种形式直接在Crontab中配置

*/2 * * * * /usr/bin/php -f  /var/www/html/*.php

====================================

用了两天时间完成这个任务,其实一点也不难,只是因为对PHP不熟悉,才花了这么长时间。
本来以前研究过crond的,可是和PHP结合还是第一次,第一次嘛,原谅自己了。
就是可惜了我一个周末的休息时间...
OK,以下是配置步骤:
1.Linux下必须编译安装PHP解释器,在安装完成后,要将安装目录下${PHP}/bin/php 文件复制到
/usr/bin/下,并使用chmod +x ./php 为其添加可执行权限,ok了,
然后在linux命令行下输入:php -q *.php
执行一个php程序,以验证是否解释器工作正常
2.发布php文件:将编写好的php程序发布到apache的发布目录:如:/var/www/html下
加权限:chmod +x /var/www/html/*.php
3.创建定时任务:
(1)启动linux定时服务:service crond start
(2)查看当前定时任务: crontab -l
(3)添加新定时任务:crontab -e
在打开的文件中编辑:
*/2 * * * * /usr/bin/php -f  /var/www/html/*.php
表示每2分钟执行一次/var/www/html/*.php文件
(注: -f 很重要,不能修改成 -q )

日志
默认情况下,crontab中执行的日志写在/var/log下,如:

#ls /var/log/cron*

看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察

crontab特殊的符号说明:

"*"代表所有的取值范围内的数字。特别要注意哦!

"/"代表每的意思,如"*/5"表示每5个单位

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

","分散的数字

crontab文件的使用示例:

30 21 * * * 表示每晚的21:30

45 4 1,10,22 * * 表示每月1、10、22日的4 : 45

10 1 * * 6,0 表示每周六、周日的1 : 10

0,30 18-23 * * * 表示在每天18 : 00至23 : 00之间每隔30分钟

0 23 * * 6 表示每星期六的11 : 00 pm

* */1 * * * 每一小时

* 23-7/1 * * * 晚上11点到早上7点之间,每隔一小时

* 8,13 * * 1-5 从周一到周五的上午8点和下午1点

0 11 4 * mon-wed 每月的4号与每周一到周三的11点

0 4 1 jan * 一月一号的4点