shell脚本直接运行和crontab结果不一样
一招必杀:
5x-f$F.c,K程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛在脚本最前面加上一句:5j6T:O:s2G&k0o"?
%s+Q&y0q-H(E#qTechWeb-技术社区source ~/.bash_profile
7g,V5Y&d,k+C:n7{9h
,g7Z.X2j:V.c9|.G0A;O这样运行环境就一摸一样了。加上这句后,直接执行能成功的脚本放在crontab里都能执行。
4s9K({#a*i"G'y7Y所有的crontab问题只有两种可能,tech.techweb.com.cn2X&z O5K1|#d*[:n;P
&N/h&O-W9O1,环境TechWeb-技术社区+W#d+~-P"N8e#m
2,路径
/j3x#~!n$@0Xtech.techweb.com.cn9k&{+}.Q5T7g9C4Z"Y
而第二种问题往往又是第一种问题引起的,所以加上.bash_profile里的环境后99%的问题都一招通杀。
+}8{7I*[8}0L-@;E:A#l0Z
.bash_profile会读取.bashrcTechWeb-技术社区*Q"{7F u*l
.bashrc 会读取 /etc/bashrc#w,])P4`5n:V,Z+{
/etc/bashrc 会读取 /etc/profile程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛3U0r:@:K#I3`$A#E9b1L
&k8@)w"U,T1~5P5d0^
一个linux所有的系统用户,所有的环境变量,都逃不出以上几个文件。(前提是你用bash)程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛&o7U)V#B)E;I
|