`
crabdave
  • 浏览: 1275841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux crontab 定时任务

 
阅读更多

Linux crontab 定时任务

 

crontab命令选项:

     -u指定一个用户

     -l列出某个用户的任务计划

     -r删除某个用户的任务

     -e编辑某个用户的任务

 

新增:

crontab -e 然后添加相应的任务,wq存盘退出。

查看:

crontab -l //列出当前的所有调度任务

 

 

crontab有个问题,就是它总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错.

有时候会出现,定时任务在执行脚本时,识别不了环境变量的问题,例如:JAVA、SVN、MVN等

这就要求在脚本开头部分加入如下内容:

#!/bin/sh

. /etc/profile

. ~/.bash_profile

 

~表示当前用户的家目录,可能有些环境做了修改,找不到.bash_profile,根据实际情况处理吧,不行就注释掉

 

参考文章:

http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html

 

注意:执行时报的环境变量可能会与当前环境不一样!

手动执行脚本没问题,但是使用crontab执行时,会出现环境变量引发的问题

主要解决办法是:

1、在自己写的脚本中,开头部分添加

#!/bin/sh

. /etc/profile

#. ~/.bash_profile

 

2、对于使用到的相关环境变量写入到/etc/profile文件中

也就是说crontab执行前先配置好相关环境变量再执行

 

 

或者:

 

拷贝文件(以todos命令为例)

将安装目录下的todos文件(/mydir/re/tofrodos/src)拷贝到/bin目录下,并赋于相关权限

 

cp /mydir/re/tofrodos/src/todos /bin/

 

chmod 777 /bin/todos

 

 

有的定时任务在/etc/crontab中:  cat /etc/crontab

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics