近段时间由于项目需要,写了很多shell脚本,需要放到crontab中定期执行,由于一开始没有太注意,放在crontab中的shell脚本执行总是失效,经过上网查资料,总结几个要点如下:
1、shell脚本中要使用文件的绝对路径,不能使用相对路径
2、环境变量,在shell脚本中加上一行: PATH=bin路径,同理,还有库文件路径,LD_LIBRARY_PATH。都需要在shell脚本中重新export,因为在crontab中shell脚本只会使用很少的系统变量,其他都需要再次export
#! /bin/bash
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
这是两个比较重要的点,记下。