shell脚本登陆数据库

该博客介绍了如何通过Shell脚本设置Oracle环境变量并连接到数据库。文章强调执行脚本的主机需已安装Oracle,并且需正确设置ORACLE_SID和ORACLE_HOME变量,以避免sqlplus命令找不到的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

Help()
{
    cat << EOF
 
    Please user this shell like this:
    ./a1.sh dbname dbuser
    
EOF

   exit 1
}
while getopts c:d:e:f: OPT
do
    case $OPT in
        c)
        echo "you put params c and value :$OPTARG"
        ;;
        d)
        echo "you put params d and value :$OPTARG"
        ;;
        e)
        echo "you put params e and value :$OPTARG"
        ;;
        f)
        echo "you put params f and value :$OPTARG"
        ;;
        *)
        Help
        ;;
    esac
done

if [ $# -ne 2 ]
then    
    Help
fi

dbname=$1
dbuser=$2

echo "please input $dnuser password:"
read -s passwd

echo "your dbname is :$dbname and dbuser is :$dbuser and passwd is :$passwd" |tee djk.log
echo "begin to connection db and time now is `date '+%Y%m%d%H%M%S'`" |tee -a djk.log
export ORACLE_SID=$dbname
export ORACLE_HOME=/opt/oracle/product/11gR2/db
/opt/oracle/product/11gR2/db/bin/sqlplus -L  $dbuser/$passwd <<ef
ef

if [ $? -ne 0 ]
then
    echo "connection db fail please check your name and password and we will exist " |tee -a djk.log
fi

/opt/oracle/product/11gR2/db/bin/sqlplus $dbuser/$passwd <<ef
 set heading off
 set term off
 spool test.log
 select * from omcdevbasicinfo;
 spool off
ef




这里要注意的是 执行这个shell脚本的主机要安装oracle ,export ORACLE_SID=$dbname
export ORACLE_HOME=/opt/oracle/product/11gR2/db这2句话是导入了oracle的坏境变量,必须导入 否则执行sqlplus的时候将会报命令没找到错误




#!/bin/sh
if [ ! -e check.txt ]; then
        echo "check.txt is not exist...."
        exit
fi

dbip=$( grep -i dbip check.txt | awk -F"=" '{print $2}' )
user=$( grep -i user check.txt | awk -F"=" '{print $2}' )
password=$( grep -i password check.txt |awk -F"=" '{print $2}' )

echo "read params dbip:$dbip;user:$user;password:$password"

scp djk.txt $dbip:/opt/oracle/

ssh $dbip " cd /opt/oracle/;chmod 777 djk.txt;su - oracle -c \"

sqlplus -s $user/\"$password\"  <<ef
set trimspool on
    set linesize 200
    set pagesize 2000
    set newpage 1
    set heading off
    set term off
    spool result.t
    select * From omcdevbasicinfo;
     spool off
ef
\"
 "

scp $dbip:/home/oracle/result.t ./


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值