详细的Linux Ubuntu定时执行Php脚本及Shell大屏查看

发布于:2016年11月05日 已被阅读

详细的Linux Ubuntu定时执行Php脚本及Shell脚本笔记


 一、Crontab命令解析                   

crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

crontab文件的含义:

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute   hour   day   month   week   command

 

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

 

例如:

每1分钟执行一次command命令

* * * * * command

在上午8点到11点的第3和第15分钟执行命令:

3,15 8-11 * * * command

每一小时重启smb 命令:

* */1 * * * /etc/init.d/smb restart

每小时执行/etc/cron.hourly目录内的脚本命令:

01   *   *   *   *     root run-parts /etc/cron.hourly

 

二、 定时执行php脚本

1.确认系统中安装PHP-cli

安装命令:

apt-getinstall php5-cli

2.查看phpinfo()

若phpinfo()中"Server API"为"Apache2.0 Handler"则为apache模块安装模式,若为"CGI"则为cgi模块安装模式

2.1 如果安装模块为Apache,则进行以下步骤(一般情况下为Apache,看之前自己安装的是哪个模块)

安装Lynx浏览器,以便进行相应的PHP执行

sudoapt-get install lynx

安装完后,执行

crontab –e

若初次执行会出现以下

Select aneditor.  To change later, run

 ‘select-editor’.

1. /bin/ed

2. /bin/nano        <—- easiest

3. /usr/bin/vim.tiny

4. /usr/bin/vim.basic

选择一个Vim编辑器就行,关于Vim的用法自行百度

 

进入编辑界面后,如下:

# m h  dom mon dow  command

在下面添加定时执行命令:

*/1 * ** * lynx -dump http://xxxxx.xx/cron.php  

//代表每一分钟执行http://xxxxx.xx/cron.PHP的脚本文件一次

在此之前要确认cron.php的权限为可执行("chmod 755/var/www/html/cron.php")

 

2.2如果安装模块为CGI安装模式

相较上面不同的是,不需要安装lynx浏览器,直接输入php就行

*/1 * ** * php /var/www/crontab.php  

 

3. crontab命令:

crontab -e

在crontab内容文件下:

# m h  dom mondow   command

假定需要定时执行的php脚本文件放在主文件夹下(默认为/var/www/html)

加上

 

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

*/1 * ** * lynx -dump http://localhost/crontab.php
*/1 * * * * date >> /home/ubuntu/test.txt

表示每一分钟执行相应的SHELL脚本

每一分钟把当前日期时间输出到相应的txt中

到相应的文件夹下看txt文件里面的内容,若有相应的执行时间,则证明日期输出可定时执行


三、定时执行Shell脚本             

 

设置相应的Shell脚本,这样子,以后要定时执行哪些文件,只需要在脚本里面编辑 就行。

执行命令crontab -e

进行编辑

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

*/1 * ** * /home/ubuntu/Myshell/time1.sh

 

相应的tme1.sh文件内容如下


#!/bin/sh

date >> /home/ubuntu/test.txt

lynx -dump http://localhost/crontab.php

以上定时任务就可以执行了! 


    最新发布
    linux下svn提交忽略某些文件... (173)
    使用批处理来批量更新、提交SVN... (136)
    linux查看目录文件大小命令 (145)
    linux tar打包压缩排除某个... (134)
    Linux tar压缩和解压 (192)
    SVN子命令add用法浅析 (130)
    热门博文
    网友FBI探案:马蓉iPad惊人发现... (43345)
    霍金携手俄罗斯富豪耗资1亿美元寻找外... (4747)
    如何才能查看PHP内置函数源代码... (1209)
    微信支付开发当前URL未注册的解决方... (574)
    《谁为爱情买单》中的经典面试 ... (441)
    让虚拟主机也用上SVN:适用于个人的... (395)
    精华博文
    [推荐]Centos7 安装配置 SVN (159)
    easyswoole框架安装 (174)
    php开启pecl的支持(推荐) (157)
    1-10个恋爱表现:男朋友爱你程度到... (164)
    女生喜欢你的10个程度,到第六个就可... (141)
    Eclipse 没有Server选项... (211)
    友情链接
    我来忙 (110)