1.路径问题
绝对路径与相对路径,
1)在crontab内运行的命令请千万一定要先cd到你要运行的程序脚本的当前目录下,然后再执行,
2)路径名一律换为绝对路径
3)不要直接使用python,java这样的命令,之前遇到版本不支持的情况,然后发现crontab的环境下默认的是python2.4,而我默认的是python2.7,这种情况下,要使用绝对路径,比如说/usr/bin/python2.6
4)注意shell脚本要加
#!/bin/sh
. /etc/profile
这样子就不会出现什么JAVA_HOME not found这样找不到的情况了
2.日期符号问题
如果要传日期作为参数的话,可能会出现不能运行的情况,原因就是crontab无法识别%,比如说传参date +%Y%m%d ,那么就要改为date +\%Y\%m\%d
3.文件not found
如果用了绝对路径还是找不到文件的话,尤其是加了匹配任意字符的*之后找不到的话,也会有这样的可能:
dir="/home/a/"
name_prefix="123"
ls $dir$name_prefix"*"
这个时候,只要用一个新的变量兜住这两个变量即可
filename=$dir$name_prefix"*"
ls $filename
...
无语凝咽。。。
有些脚本,真的不是本地测没事就ok的,定时任务一定要在定时任务的环境下测才可能发现隐藏的bug。