任务调度命令crontab

原创 2013年12月03日 17:23:41

最近使用到crontab命令,用它来进行作业的定时自动提交,遇到了一些问题,最后解决了。记录一下~~

(1)首先将要执行的文件打成jar包  MongoConf.jar,放到/home/auto目录下面,建立脚本文件MongoConf.sh,建立日志文件run.log存储产生的日志信息。

(2)编辑MongoConf.sh

<span style="font-family:Microsoft YaHei;font-size:14px;">#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/bin:/sbin:/usr/sbin:/usr/bin
cd /home/auto/
/home/jdk1.6.0_31/bin/java -jar MongoConf.jar -cp /home/jdk1.6.0_31/lib/tools.jar:/home/jdk1.6.0_31/lib/dt.jar</span>

注意此处路径要按照自己机器jdk实际路径写,写完后可以./MongoConf.sh先测试下脚本是否能正常运行;

(3)设置系统变量crontab

crontab常用的三个命令

查看cron是否在运行:service cron status

显示当前通过crontab设定的所有任务调度:crontab -l

编辑任务配置文件:crontab -e

删除任务:crontab -r (会删除所有的任务)

配置文件:/etc/crontab

//(试了好多次,改了/etc/crontab 和 crontab -e 不知道是哪个起作用了,都改成一样的噢啦)

使用命令

<span style="font-family:Microsoft YaHei;font-size:14px;">crontab -l</span>
发现no crontab for root

然后使用命令

<span style="font-family:Microsoft YaHei;font-size:14px;">crontab -e</span>
出现no crontab for root – using an empty one


a:然后会叫你“Select a editor ……”下面有几个选项,就是叫你选择编辑器,选择vi(我的木有这项)
进入crontab编辑页面之后就直接”shift+:”,然后输入wq保存即可。

b:我使用的这项。crontab默认选择nano编辑器是可以编辑的 但是一旦选错了就瞎了~ 错误代码no crontab for root - using an empty one 解决 修改crontab默认编辑器为vi或者其他的编辑器。 法一:export EDITOR="/usr/bin/vim" ; crontab -e 法二: 执行命令:select-editor ...

然后一个新的crontab就生成了。

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

(4)按照crontab的语法写自己要运行的程序。

00 01 * * * /home/auto/MongoConf.sh >>/home/auto/run.log 2>&1 &

(5)重新启动crontab服务

service cron  restart

(6)终止任务  crontab -r


如何调度多个任务?

(1)在crontab -e 中直接写

局限性:多而乱

(2)可以把所有的任务写入到一个可执行文件,即.sh文件(shell编程)

* * * * /home/auto/task.sh

同一个时间执行多个任务


crontab在php中的应用:


(1)在Crontab中使用URL执行脚本

当我们需要定时去调用某个本机的或者是远程的web程序时,可以这样设置crontab
0 5 * * * /usr/bin/curl   http://www.xmsdn.net/it-net/linux/linux-curl-crontab

此处  ”0 5 * * * ”  表示每天早上的5点钟定时访问上面的url 链接,将其加入到你的 crontab 替代文件中.

也可以使用lynx和wget

00 * * * * lynx   -dump http://www.jb51.net/myscript.php 

*/10 * * * * /usr/bin/wget     -q -O temp.txt http://www.jb51.net/myscript.php 


(2)当我们需要定时执行某个系统内的php脚本程序时,可以这样设置crontab
* 19 * * *  /usr/local/php/bin/php    /var/www/test.php   

此处表示调用php(因为是安装在"/usr/local/php/bin"这个目录下),每天的下午7点执行web目录下test.php

*/5 * * * * www /usr/local/php/bin/php /data/project/project_test.php >>/dev/null 2>&1

即每隔5分钟以www用户身份执行/data/project/project_test.php文件,注:PHP程序的执行需要Apache用户(比如www:www)的支持,所以这里的用户建议是www用户,即运行Apache的用户;当然了,www用户对此php是有755权限。
>>/dev/null 2>&1 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息,防止/var/spool被大量垃圾信息占满,影响磁盘的正常运作。




相关文章推荐

Linux定时任务Crontab使用 提示no crontab for root

转载:http://blog.chinaunix.net/uid-7552018-id-182133.html 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux...

no crontab for root 解答

no crontab for root - using an empty one crontab: installing new crontab 解析

Linux下学习crontab定时任务笔记

crontab介绍    crontab命令的功能是在一定的时间间隔调度一些命令的执行.当安装完操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有...
  • sunrier
  • sunrier
  • 2012年08月09日 16:46
  • 4593

第一次使用crontab linux

第一次使用crontab 时,会出现 no crontab for root - using an empty one   “Select a editor ......”下面有几个选项,...
  • Sweblish
  • Sweblish
  • 2013年03月09日 11:26
  • 13371

linux中任务调度命令crontab的使用

任务调度命令crontab在linux使用,ubuntu系统

Linux+javaEE学习笔记之crontab--任务调度命令

Linux+JavaEE学习笔记之crontab--任务调度命令 任务调度:是指系统在某个时间执行的特定命令或程序。 任务调度分类:1.系统工作:有些重要的工作必须周而复始的执行,比如:病毒扫描 ...

Linux中的定时任务调度—crontab命令

在linux系统中,有些工作需要周而复始的工作,有些任务需要在某个特定的时间启动工作,这就可以通过crontab这个命令来进行设置,这个文件在/etc/crontab。具体步骤为: (1)设置任务 ...

Linux后台运行命令cron and crontab任务调度详述

本次主要讲述后台运行命令(crontab,at,&,nohup)及(*,?,[])等 ? 设置c r o n t a b文件,并用它来提交作业。 ? 使用a t命令来提交作业。 ? 在后台提...

linux任务调度命令crontab

任务调度其实就是指系统在某个时间执行的特定的命令或程序,一般分为系统工作(例如有些工作必须周而复始的执行,如病毒扫描)和个别用户工作(个别用户希望执行的命令和程序)。为了满足这种需求,linux下有一...

linux任务调度crontab时间规则

5 * * * *每小时第5分钟执行 */5 * * * *每5分钟执行 0 2 * * * 每天凌晨2点执行cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:任务调度命令crontab
举报原因:
原因补充:

(最多只允许输入30个字)