linux linux定时运行脚本脚本 / 是什么意思

颠覆与创新
超态信息插件 Sinfo
不想变成栏目的信息不是好信息
更新时间:
> linux定时执行php脚本方法
linux定时执行php脚本方法
来源:东坡网 &&作者:红樱桃 &&发布日期: 20:40:46 &&阅读次数:1205
网站运营过程中,经常会遇到需要定时执行php脚本的情况,之前介绍过《》,这次介绍linux系统定时执行php脚本方法。
linux系统实现计划任务一般采用crontab工具,下面详细介绍利用crontab工具定时执行php脚本。
1、首先确认crontab服务是否正常。
查看crontab服务状态:
service crond status
手动启动crontab服务:
service crond start
crontab加入开机启动:
chkconfig crond on
2、在crontab中使用wget执行php脚本
输入命令进入定时编辑界面:
crontab -e
键盘打出a,进入输入状态,输入如下代码:
*/5 * * * * wget -q http://网址/do.php?enews=resh
键盘打出ESC:wq,保存。上面这一行代码的意思是:每个5分钟执行一次后面的php脚本。蓝色部分必须是可以在浏览器访问且可以正常执行的网址。
crontab命令的前5个 * 分别代表:
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
3、在crontab日常维护
查看crontab服务定时设置:
crontab -l
删除用户的全部定时设置:
crontab -r
要想停止某一个定时设置,只需进入crontab定时编辑界面,在定时设置的行首加注释符 # 即可。
版权说明:本文由
原创,版权归东坡网所有,欢迎转载,但请保留来源于东坡网。署名的转载是对我们最大的支持,感谢!
本页采用东坡网【动态页缓存插件】,当前页面缓存时间
本次从缓存读取页面,总耗时 0.20312 秒深入解析Linux下的定时任务
字体:[ ] 类型:转载 时间:
在有了邮件的告警功能后,下一步要做的就是做一个定时任务,让这个任务按周期执行,这样就能周期性地收到告警信息了
在做定时任务之前,先检查一下当前的系统时间【date &"+%Y-%m-%d %T"】和硬件时钟时间【hwclock】:
[root@localhost test]#&date &"+%Y-%m-%d %T" 07:57:52
[root@localhost test]# hwclock日 星期一 07时57分48秒 &-0.059059 seconds
上面的结果显示,我当前的时钟时间都不正确,先设置系统时间:[root@localhost test]# &date -s " 08:47:00"2013年 07月 09日 星期二 08:47:00 CST
再设置硬件时间和系统时间同步[root@localhost test]# hwclock &-w
下面再查看系统时间和硬件时钟时间:
[root@localhost test]# hwclock日 星期二 08时47分07秒 &-0.180411 seconds[root@localhost test]# date &"+%Y-%m-%d %T" 08:47:13[root@localhost test]#
时间正常了,下面就可以做定时任务了,在Linux下做定时任务比较简单,使用crontab命令就可以。为了方便查看效果,先编辑一个test.sh,内容就是格式化显示当前的系统时间:
date &"+%Y-%m-%d %T"
执行一下查看结果:
[zl@localhost test]$ sh test.sh 09:03:28
好,结果是正常的。下面简单学习一下crontab 命令:
常用参数:crontab & -l & //查看当前用户下的cron任务crontab -e &//编辑当前用户的定时任务
[zl@localhost test]$ crontab -l52 8 * * * sh /home/zl/test/test.sh && /home/zl/test/test_chrontab.txt
说明我的当前用户下,有一个定时任务,我们来分析一下这个定时任务:
52 8 * * * sh /home/zl/test/test.sh && /home/zl/test/test_chrontab.txt
任务中分成6部分,抽象出来为
分 时  &日  &月  周  & & &命令
*  *  *  *  *  command
第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令
以上面的为例,这个任务是在每天的8点52分执行,执行的命令为sh /home/zl/test/test.sh && /home/zl/test/test_chrontab.txt
如果我们需要再添加一个每周五的23点50分执行一个周报的任务,则
执行crontab -e【执行文字编辑器来设定时程表,内定的文字编辑器是 vi】,在任务中添加50 23 * * 5 sh /home/zl/weekly_report.sh即可:
[zl@localhost test]$ crontab -ecrontab: installing new crontab
再次查看任务列表,又添加了一个新的任务[zl@localhost test]$ crontab -l52 8 * * * sh /home/zl/test/test.sh && /home/zl/test/test_chrontab.txt50 23 * * 5 sh /home/zl/weekly_report.sh[zl@localhost test]$
下面再附一些别人使用的例子:0 21 * * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示每晚的21:30重启apache。45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示每月1、10、22日的4 : 45重启apache。10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart上面的例子表示每周六、周日的1 : 10重启apache。0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart上面的例子表示每星期六的11 : 00 pm重启apache。* */1 * * * /usr/local/etc/rc.d/lighttpd restart每一小时重启apache* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart晚上11点到早上7点之间,每隔一小时重启apache0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart每月的4号与每周一到周三的11点重启apache0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart一月一号的4点重启apache
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具关注51Testing
Linux中crontab-定时任务命令
发表于: 09:54 &作者:candle806 & 来源:51Testing软件测试网采编
推荐标签:
  有些东西很久不用就会忘记,所以为了不至于总是找资料,干脆就做一次深刻的笔记,这样既能加深记忆,又能深入理解。  服务器很久没接触了,出了一些新的版本,Ubuntu已经出了11.10了,之前对于Ubuntu的了解只是出于对桌面版的好奇,可以跟win7一样炫,现在的Ubuntu已正式进入了Liunx爱好者的视线,应用用于后台大型服务器,选择它的主要原因还是出于对稳定性的考虑。用习惯了Centos,突然转移到Ubuntu上还是有些不习惯,毕竟Centos与传统的Redhat没什么区别。不过,总归命令还是一样的,多用用就熟悉了。  关于任务定时的命令crontab,在Linux中应用还算常见,这次为了配合开发完成一些辅助功能,以及一些备份更新等脚本,就需要crontab来完成,在windows下也就是一个批处理,linux只是多了一些命令而已。先来看看crontab的介绍:  crontab命令常见于Unix和类Unix的之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。  在Ubuntu中,crontab的命令如下:  -e 表示编辑当前的crontab  -l& 表示列表显示当前的crontab任务  -r& 表示删除当前用户的crontab  -i& 表示删除crontab时给予提示信息  注意,user's crontab这个表示是每个用户都有自己的crontab,所以如果需要全局执行,必须定制root用户的crontab,非全局的,就根据各个用户自己的crontab来执行,在执行编辑crontab操作时,我们需要设置编辑工具,否则默认是crontab的编辑,对于习惯vi编辑的用户,我们需要在用户目录下设置.profile配置文件,如root的配置文件.prifile,就如下目录:  带.的文件都是隐藏文件,所以需要ls -a才能列出来,vi .profile在文件中加入如下配置:  EDITOR= export EDITOR  表示,当前root用户以vi作为默认编辑器,此时直接使用crontab -e,可以进行编辑任务列表,如下所示:  上面以#号开头的表示是注释说明的信息,红色标记的是任务列表。  对于crontab的任务配置说明;  分钟 小时 日 月 星期 命令  *&&& *&&& *& *& *&&& *  这样就一目了然了,我们红色标记的表示的意义是每天3点钟执行脚本run.sh,并将执行自动输出到log.log文件中。  */1 * * * * root& /opt/bin/test-cron.sh //表示每隔一分钟执行一次脚本  注:crontab任务是被定制在系统后台运行的cron进程,所以用户书无法查看到cron的进程状态的。设置开机启动cron进程,命令如下:  chkconfig --add crond,把它加入到系统的服务列表中。  当然,crontab命令用多了,会越来越喜欢它的,因为它能简化我们日常的很多,特别是备份、检测服务器运行状态等一些经常做的工作,都可以根据你的需求来定制,在合理的时间运行执行合适的工作任务,既不影响服务器的性能,又可以节约平时的工作时间,大大提高功能效率。
公益活动:
搜索风云榜
51Testing官方微信
51Testing官方微博
测试知识全知道linux Shell 实现每天定时执行脚本,周六周日除外,后台运行 - 厨师 - ITeye技术网站
博客分类:
#Section configuration(配置部分)
#Task Time ,ex:203000(Time 20:30:00);190000(Time 19:00:00);
startTime=170000
#Script File
scriptfile=./gen.sh
#Section promgram (程序执行部分)
perDate=$(date "+%Y%m%d")
isNewDay=1
totalSecs=0
isFirstTime=1
echo 'Task schedule Time: ('$startTime') scriptfile: ('$scriptfile') Waiting...'
curTime=$(date "+%H%M%S")
curDate=$(date "+%Y%m%d")
#Check week day
week=`date +%w`
day=`echo $week "- 1" | bc`
if [ $day -lt 0 ] || [ $day -eq 5 ];then
isNewDay=0
#check and run script
[ "$isNewDay" -eq "1" ];then
if [ "$curTime" -gt "$startTime" ];then
if [ "$isFirstTime" -eq "0" ];then
echo 'Shell Script ('$scriptfile') Running...'
sh $scriptfile
echo 'Shell Script ('$scriptfile') Stopped...'
isNewDay=0
if [ "$isFirstTime" -eq "1" ];then
echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...'
isFirstTime=0
#new day start
if [ "$curDate" -gt "$perDate" ];then
echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...'
isNewDay=1
perDate=$curDate
后台挂起运行nohup ./autorun.sh&
mylove2060
浏览: 172002 次
来自: 杭州
navylq 写道
这代码你自己有测试么?
引用自哪里也没有 ...
这代码你自己有测试么?引用自哪里也没有说!
tianfeng722 写道出现了乱码,怎么弄啊
编码设置的问 ...
出现了乱码,怎么弄啊Linux系统中定时运行命令使用介绍附实例
作者:佚名
字体:[ ] 来源:互联网 时间:01-08 15:11:58
在Linux众多命令中,有些命令可定时运行,下面小编就给大家详细介绍下Linux中定时运行命令的用法,感兴趣的朋友可以看看
  对于初学者来说,Linux系统命令是主要学习的内容,在Linux众多命令中,有些命令可定时运行,下面小编就给大家详细介绍下Linux中定时运行命令的用法,一起来了解下吧。
  1.命令简介
  每个用户都有各自不同的计划任务列表,用各自的帐户登录后运行
  代码如下:
  crontab -l
  就可查看到各任务的计划任务情况,使用下列命令可以修改自己的计划任务
  代码如下:
  crontab -e
  每次添加完任务后,一定记得重新启动crond服务,不然不会生效
  代码如下:
  service crond restart
  2.实例
  下面为一计划任务的样例
  代码如下:
  #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
  0 11 4 * mon-wed date
  上面这句的意思是&每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点显示时间&,你把date改成你想执行的命令,再把执行的时间改了,就可以形成一个定时执行命令了
  代码如下:
  #每分钟执行一次
  */1 * * * * date
  #在/root/run_sh/下面写一个shell脚本,命名为run.sh,内容如下
  #!/bin/sh
  echo hello 》 /root/Hello.txt
  然后运行crontab -e命令,写入
  代码如下:
  */1 * * * * /root/run_sh/run.sh(一定要绝对路径)
  保存退出后执行service crond restart,过一分钟后你就会在/root下看到Hello.txt文件。&
  代码如下:
  #定时运行java程序,写一命名为run.sh的shell脚本,内容如下
  #!/bin/sh
  cd /root/javaExe/
  java TestCron/Test
  后运行crontab -e 写入
  */1 * * * * /root/run_sh/run.sh(一定要绝对路径)
  后重启crond服务。
  3.空格之间的参数意义如下
  分钟 小时 天 月 星期 要执行的命令
  前面五个参数中间用空格隔开,最后是要执行的命令。
  详细的请参考下面
  Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序
  使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它,
  cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务:
  crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
  crontab -l //列出某个用户cron服务的详细内容
  crontab -r //删除没个用户的cron服务
  crontab -e //编辑某个用户的cron服务
  比如说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自动重新启动。
  需要将crond设置为系统启动后自动启动的服务,可以在/etc/rc.d/rc.local 中,在末尾加上
  代码如下:
  service crond start
  如果还需要在系统启动十加载其他服务,可以继续加上其他服务的启动命令。
  比如:
  代码如下:
  service mysqld start
  基本用法:
  1. crontab -l
  列出当前的crontab任务
  2. crontab -d
  删除当前的crontab任务
  3. crontab -e (solaris5.8上面是 crontab -r)
  编辑一个crontab任务,ctrl_D结束
  4. crontab filename
  以filename做为crontab的任务列表文件并载入
  crontab file的格式:
  crontab 文件中的行由 6 个字段组成,不同字段间用空格或 tab 键分隔。前 5 个字段指定命令要运行的时间
  分钟 (0-59)
  小时 (0-23)
  日期 (1-31)
  月份 (1-12)
  星期几(0-6,其中 0 代表星期日)
  第 6 个字段是一个要在适当时间执行的字符串
  例子:
  代码如下:
  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
  #每天早上6点10分
  10 6 * * * date
  #每两个小时
  0 */2 * * * date (solaris 5.8似乎不支持此种写法)
  #晚上11点到早上8点之间每两个小时,早上8点
  0 23-7/2,8 * * * date
  #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点&
  0 11 4 * mon-wed date
  #1月份日早上4点
  0 4 1 jan * 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中,我们应该用;
  [root@localhost ~]# /etc/init.d/crond restart
  如果让crond 在开机时运行,应该改变其运行级别;
  [root@localhost ~]# chkconfig --levels 35 crond on
  service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它, cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务
  下面是一个例子文件:
  代码如下:
  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
  #每天早上6点
  106* * * date
  #每两个小时
  0*/2* * * date
  #晚上11点到早上8点之间每两个小时,早上部点
  0 23-7/2,8* * * date
  #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
  0 11 4* mon-wed date
  #1月份日早上4点
  0 4 1 jan* date
  lark:~》crontab-1 列出用户目前的crontab.
  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
  10 6* * * date
  0*/2* * * date
  0 23-7/2,8 * * * date
  lark:~》
  基本格式 :
  *****command
  分  时  日  月  周  命令
  第1列表示分钟1~59 每分钟用*或者 */1表示
  第2列表示小时1~23(0表示0点)
  第3列表示日期1~31
  第4列表示月份1~12
  第5列标识号星期0~6(0表示星期天)
  第6列要运行的命令
  crontab文件的一些例子:
  代码如下:
  30 21 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每晚的21:30重启lighttpd 。《/p》 《p》45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。《/p》 《p》10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每周六、周日的1 : 10重启lighttpd 。《/p》 《p》0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。《/p》 《p》0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每星期六的11 : 00 pm重启lighttpd 。《/p》 《p》* */1 * * * /usr/local/etc/rc.d/lighttpd restart
  每一小时重启lighttpd《/p》 《p》* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
  晚上11点到早上7点之间,每隔一小时重启lighttpd《/p》 《p》0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
  每月的4号与每周一到周三的11点重启lighttpd《/p》 《p》0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
  一月一号的4点重启lighttpd
  上面就是Linux定时运行命令的用法介绍了,当你在操作Linux系统的时候,这些定时运行命令能够节省很多操作,是比较常用的命令。
大家感兴趣的内容
12345678910
最近更新的内容

我要回帖

更多关于 linux定时执行php脚本 的文章

 

随机推荐