crontab 环境变量问题

简介:

crontab执行脚本的时候,有可能会因为环境变量的问题而不能执行。如手动执行sh /root/aa.sh时,是成功的,在另一台虚拟机也是成功的。但在某一台就没成功。此时,可以添加PATH到aa.sh里。

vi /root/aa.sh

#!/bin/bash

PATH="/usr/local/jdk1.7.0_79//bin:/usr/local/jdk1.7.0_79/bin:JRE_HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

i1=`nmap -sS 127.0.0.1 -p 8080 | grep $8080 | awk '{printf $2}'`

i2=`nmap -sS 127.0.0.1 -p 8081 | grep $8081 | awk '{printf $2}'`

if [ "$i1" == "closed" ]; then

/home/work/tomcat-background/bin/startup.sh

fi

if [ "$i2" == "closed" ]; then

/home/work/tomcat-zjq-front/bin/startup.sh

fi



调试时可以在脚本里加echo来调试


#!/bin/bash

echo 1111 > /tmp/abc


PATH="/usr/local/jdk1.7.0_79//bin:/usr/local/jdk1.7.0_79/bin:JRE_HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

i1=`nmap -sS 127.0.0.1 -p 8080 | grep $8080 | awk '{printf $2}'`

i2=`nmap -sS 127.0.0.1 -p 8081 | grep $8081 | awk '{printf $2}'`

if [ "$i1" == "closed" ]; then

/home/work/tomcat-background/bin/startup.sh

fi

if [ "$i2" == "closed" ]; then

/home/work/tomcat-zjq-front/bin/startup.sh

fi


      本文转自flayber  51CTO博客,原文链接:http://blog.51cto.com/406647516/1922538,如需转载请自行联系原作者





相关文章
|
分布式计算 Java Hadoop
crontab环境变量问题
在crontab中运行脚本来查看hadoop相关信息,由于hadoop、java默认部署在/usr/local下面, 所以导致crontab执行时出现报错。具体与环境变量有关系,下文描述比较清楚。
1416 0
|
8月前
|
Shell PHP
解决crontab无法读取环境变量
解决crontab无法读取环境变量
116 0
|
11月前
|
Shell
Shell 执行 .sh 文件(配置、介绍文件权限)
Shell 执行 .sh 文件(配置、介绍文件权限)
422 0
|
Shell Java
crontab使用环境变量
两种方式: 1)直接在crontab中定义变量,如: A=123 * * * * * echo $A > /tmp/a.txt 注意在定义变量时不能使用$引用其它变量,如下面的做法错误: A=123 B=$A 2)在/etc/environment中定义变量 此文件定义变量的格式为:NAME=VALUE,和crontab相关,也不能使用$引用其它变量。
1504 0
|
Shell Linux 调度
|
Shell 调度 Linux