最近在服务端夜间允许脚本,发现未执行,但是本地却能执行,百思不得其解.
后来查证:crontab 内无环境变量,所以任何shell命令需要使用全路径才能执行添加完毕即可执行.
援引链接
http://bbs.chinaunix.net/thread-1926428-1-1.html
crontab -e
23 11 4 7 * sh killKafkaConsoleConsumer.sh
crontab内容为
23 11 4 7 * sh /tmp/killKafkaConsoleConsumer.sh
/tmp/killKafkaConsoleConsumer.sh 的内容为
#! /bin/bash
kafkaconsolePid=`jps | grep -v grep | grep ConsoleConsumer | cut -d " " -f 1 `
#echo $kafkaconsolePid
kill -9 ${kafkaconsolePid}
echo "is done"
本地测试
37 11 4 7 * /bin/echo "a">> /tmp/test.sho
结果:
/tmp$ ll test*
Jul 4 11:37 test.sho
/tmp$ cat test.sho
a
crontab任务没有环境变量,命令需要用绝对路径