博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对于crontab定时任务不能自动执行的总结
阅读量:6930 次
发布时间:2019-06-27

本文共 1198 字,大约阅读时间需要 3 分钟。

最近遇到了一些sh不能在crontab定时任务中自动执行的问题

期间由于不太了解,故走了一点弯路,现在总结下来可能第一次
进行设置遇到的问题。以绝后患!我所用过的操作系统为HP-unix&linux&sco-unix,均测试通过
1,首先确保sh脚本具有可执行属性
即chmod +x  ***.sh
或chmod +777 ***.sh
2,确保sh脚本手工执行正常
即在当前系统内手工执行sh脚本以后能收到自己期望得到的结果
3,加载环境变量
这个问题是经常容易被忽略的问题,通常我们在第二步的时候手动执行脚本能得到自己想要的结果,可是设置好crontab之后,总不能得到自己想要的结果, 总感觉脚本没有被执行。或者执行后没有得到正常的结果。很多均是由于没有加载所在用户的环境变量所引起的。因此最好在自己的脚本首两行添加环境变量的导 入。如下:其中telstar是我在操作系统下所在的用户。在该目录下执行ls -a可以查看到.cshrc文件。我们在自己的sh脚本中增加source 该文件,将本用户的环境变量加载,那么以下的内容就能正常被执行了
#!/bin/csh#source /telstar/.cshrc
下面贴出我的定时重启tomcat的一个例子
#!/bin/csh

source /telstar/.cshrckill -9 `ps -ef | grep Djava.uti | grep -v tail | grep -v vi | grep -v grep | awk '{print $2}'`cd /telstar/tomcat/binsleep 15./startup.sh &

其实这里不加载环境变量的话,sh前加上绝对路径,应该也可以,这个没有测试,有兴趣的朋友可以尝试一下
#!/bin/csh
source /telstar/.cshrc
kill -9 `ps -ef | grep Djava.uti | grep -v tail | grep -v vi | grep -v grep | awk '{print $2}'`
sleep 15
/telstar/tomcat/bin./startup.sh &
总之很多手动能正常执行的sh,crontab不能执行大多数情况是由于没有加载环境变量引起的,这里贴出来,以绝后患
#!/bin/csh
source /telstar/.cshrc
kill -9 `ps -ef | grep Djava.uti | grep -v tail | grep -v vi | grep -v grep | awk '{print $2}'`
cd /telstar/tomcat/bin
sleep 15

./startup.sh &

一般情况下需要修改环境变量配置

改统一

vi ~/.bash_profile

转载地址:http://ekmjl.baihongyu.com/

你可能感兴趣的文章
mysql删除重复值
查看>>
远程工作的大好时机
查看>>
hana 数据库修改字段长度
查看>>
1234
查看>>
WritableComparator - hadoop 1.2.1
查看>>
内部排序算法小结
查看>>
PLSQL_性能优化索引Index介绍(概念)
查看>>
Nginx学习笔记(一) Nginx架构
查看>>
MyBatis insert 返回主键的方法(oracle和mysql)
查看>>
Sigma Grid表格的功能特性
查看>>
12 Drupal 7 Modules That You Absolutely MUST Have
查看>>
freebsd常用命令
查看>>
【批处理】中文字符显示乱码的解决方法
查看>>
c#中高效的excel导入sqlserver的方法
查看>>
前端问题合集
查看>>
maven nexus 下发布第三方构件;
查看>>
Cocos2d-x 命令行创建项目时-t参数的理解
查看>>
tomcat 的编码设置?
查看>>
解決BufferedReader读取UTF-8文件中文乱码
查看>>
Java集合--HashTable
查看>>