shell如何连接到其它用户执行脚本
时间:2011-03-25
来源:互联网
我原来有个脚本是放在root下执行的,后面新建了个用户app,需要把脚本改成在这个新用户下执行,但是里面有调用oracle的存储过程,现在执行就报“standard in must be a tty”错误,大家帮忙看下如何解决,或者应该如何写才对,谢谢,脚本如下:
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/10.2.0/db_1
export ORACLE_SID=ETL
export PATH=$ORACLE_HOME/bin:$PATH
##########################################
su - oracle -c "sqlplus etl/etl@ETL" << !
exec PROC_BACKUP_TEST;
exit
!
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/10.2.0/db_1
export ORACLE_SID=ETL
export PATH=$ORACLE_HOME/bin:$PATH
##########################################
su - oracle -c "sqlplus etl/etl@ETL" << !
exec PROC_BACKUP_TEST;
exit
!
作者: ljx198308 发布时间: 2011-03-25
加入一个组,开放组权限
作者: 相思爱文 发布时间: 2011-03-25
我已经把app这个用户和oracle放在同一个组了,可还是不行,麻烦再帮忙看下,谢谢
作者: ljx198308 发布时间: 2011-03-25
呵呵,问题已经搞定了,共享给大家一下,其实就是不用再去连oracle用户了,两个都属于同一组就可以直接执行了,所以改成如下就可以
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/10.2.0/db_1
export ORACLE_SID=ETL
export PATH=$ORACLE_HOME/bin:$PATH
##########################################
sqlplus etl/etl@ETL << EOF
exec PROC_BACKUP_TEST;
exit
EOF
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/10.2.0/db_1
export ORACLE_SID=ETL
export PATH=$ORACLE_HOME/bin:$PATH
##########################################
sqlplus etl/etl@ETL << EOF
exec PROC_BACKUP_TEST;
exit
EOF
作者: ljx198308 发布时间: 2011-03-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28