linux中编写好的脚本,在本地是用sh运行是成功的,但是设置了crontab 中使用sh运行,系统提示找不到sqlplus命令,原因是在crontab中没有环境变量需要进行引入。
由于生产环境管理员将sqlplus工具配置在/etc/profile 下。所以在脚本开始位置添加:
source /etc/profile.运行会提示成功
如果家目录中的.bash_profile有配置的话,引入这个文件也可以
source /home/weblogic/.bash_profile (home/weblogic/ 是当前用户家目录)
或者 在脚本开始处直接使用export引入变量
#export ORACLE_BASE=/u01/app/oracle
#export ORACLE_BIN=${ORACLE_HOME}/bin
#export ORACLE_SID=
export ORACLE_HOME=*********
export PATH=********
以上变量亲测至少需要ORACLE_HOME和PATH,sqlplus命令才会被识别
测试脚本:
#!/bin/bash
source /et/profile
sqlplus --help
如果脚本不能运行会提示错误类似:
You have new mail in /var/spool/mail/weblogic
是用cat 查看该文件
最后会有错误提示类似
/home/weblogic/app/shell/t.sh: line 8: sqlplus: command not found