您的位置:首页 > 运维架构 > Linux

linux crontab 定时执行php文件方法 & ubuntu 定时执行.sh

2013-03-21 18:32 323 查看
ubuntu 定时执行.sh

1、# crontab -e

在文件下方会出现类似

^G Get Help ^O WriteOut ^R Read File ^Y Prev

不要着急,因为ubuntu默认的是nano编辑器,这表明,您可以按 Ctrl-G组合键得到帮助

2、对于喜欢用VIM的我来说肯定要执行一下:

# apt-get install vim

3、接下来你得知道ubuntu下crontab文件在哪了:

假设用户为root,在ubuntu中计划任务配置文件是/var/spool/cron/crontabs/root中,
在redhat中是/var/spool/cron/root文件中。

4、编辑:

# vi /var/spool/cron/crontabs/root

30 0 * * * sh /var/www/RSDAQ/RSDAQ_Analysis_haier/bin/OTAStatStart.sh >> /var/www/RSDAQ/RSDAQ_Analysis_haier/bin/OTAStatStart.log

5、重启:

# /etc/init.d/cron restart

需求:定时执行一个php文件

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

[root@localhost crontab]# crontab -e

* * * * * sh /test.sh

//这是每分钟执行一次

*/10 * * * * sh /test.sh

//这是每10分钟执行一次

crontab -u root -l 查看定时任务

crontab -u root -r 删除

[root@localhost crontab]# vi /test.sh

cd /usr/local/apache2/htdocs/test/crontab

/usr/local/php/bin/php -q test.php>>/bin.log

//以下是往memcache里写值,在另外一个文件里读取这个值就可以了检测这个这个文件是否被定时执行了

[root@localhost crontab]# vi /usr/local/apache2/htdocs/test/crontab/test.php

#!/usr/local/php/bin/php

<?php

$mem = new Memcache();

$mem->connect('192.168.4.46','11211');

$re = $mem->add('crontab2',1,'0','120');

$result = $mem->get('crontab2');

if($result == 1){

if($mem->repalce('crontab2',1,'0','120')){

echo 'reok';

}

}

if($re){

echo 'addok';

}

更多crontab的用法请往下看:

转自:http://yangqijun.iteye.com/blog/1173016

1.作用

使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。

2.格式

crontab [-u user] {-l | -r | -e}

3.主要参数

-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi

-r:删除目前的时程表

-l列出目前的时程表。

Crontab文件的格式为”M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。Cmd表示要运行的程序,它被送入sh执行,这个shell只有USER、HOME、SHELL三个环境变量。

使用cron服务,用server crond status查看cron服务状态,如果没有启动则service crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或编辑需要定时执行的任务:

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

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

crontab –r //删除某个用户的cron服务

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

crontab filename //以filename作为crontab的任务列表文件并载入

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

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

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

进入vi编辑模式,编辑的内容一定要符合下面的格式:

*/1 * * * * ls >>/tmp/ls.txt

编辑/etc/crontab文件,在末尾加上一行:30 5 * * * root init 6这样就将系统配置为每天早上5点30分自动重新启动。

crontab 文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间

分钟(0-59)

小时(0-23)

日期(1-31)

月份(1-12)

星期几(0-6,其中0代表星期日,好像7也代表星期日)

第6个字段是一个要在适当时间执行的字符串。

例子:

#MIN HOUR DAY MONTH DAYOFWEEK COMMAND

#每天早上6点10分

10 6 * * * date

#每两个小时

0 */2 * * * date

#晚上11点到早上8点之间每两个小时,早上8点

0 23-7/2,8 * * * date

#每个月的4号和每个礼拜一到礼拜三的早上11点

0 11 4 * 1-3 date

#1月1日早上4点

0 4 1 1 * date

补充:在使用crontab的时候,要特别注意的是运行脚本中能够访问到的环境变量和当前测试环境中环境变量未必一致,一个比较保险的做法是在运行的脚本程序中自行设置环境变量(export)

(1) 先建一个文件crond.txt如下,每天早上5点36分重新启动

36 5 * * * reboot

(2)上传到/opt目录

(3)运行命令

crontab /opt/crond.txt

crontab –l

让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后,也要重新启动cron服务器。

在Fedora和Redhat中,我们应该用:

/etc/rc.d/crond restart

如果让crond在开机时运行,应该改变其运行级别:

chkconfig –level 35 crond on

service crond status查看cron服务状态,如果没有启动则service crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: