dssd

dssssssss\

PRS R09 R14

 

 

  Delphi源码 VB源码 VC源码 Java源码 PB源码 .NET源码 ASP源码 PHP源码 JSP源码 JS源码

加入收藏  广告服务  关于我们  

 

 

 

源码下载 源码交易 发表文章

 

    首页 软件开发 WEB开发 移动开发 脚本语言 数据库专题 网站架构 网络与安全 网页制作 平面设计 操作系统 网站运营 FLASH开发

MySQL Oracle SQLServer NoSQL 其它数据库

 

 

 

  JS特效  jQuery插件  负载均衡

标题  

 

 

 文挡 » 数据库专题 » Oracle

ORACLE基本和变量

阅读:431次   时间:2010-03-16 04:57:07   字体:[大 中 小]

 

 

 

 

oracle主要的由两块组成,

一,客服端:主要编写PL/SQL语句,在客服端是不进行编译的,和运行的,一般的把会把PL/SQL发送到服务器有PL/SQL引擎来执行,

2.服务器,主要进行监听和处理PL/SQL语句;

二。谈谈关于ORACLE的服务器启动,

1 。右键点击我的电脑。服务,打开listener(这主要的监听有没有客服端的数据发送到服务器)

2.。打开serviceORCL,这主要的本机的,然后按F5刷新如果服务器没有启动成功那么我就需要配置两个文件

我们在oracle的安装目录下面搜索tnsnames.ora文件,把修改HOST = 192.168.1.102为本地的IP就可以了,然后,我们还需要配置一个文件便是listener.ora文件,机体的和上面差不多,

 

oracle的架构体系

主要有内存和数据库组成;

内存分为: SGA 和PGA 我们主要掌握SGA SGA分为,共享池,数据缓冲区 日子缓冲区,

数据库分为: 物理架构和逻辑架构:而逻辑架构分为:快,区,段,表空间

一句话说:oracle主要的实例和数据库,当然是咧就不说,数据库,就是各种数据库文件

 

oracle的dual的认识:

dual:是什么呢?dual书数据库的的系统表,我们主要用于获取日期和日期格式化和一些number的计算,

在orale中必须是使用from,而from后面跟的表就是dual表,它叫做虚表

select to_char(sysdate,'yyyy-mm-dd') from dual;

上面这一句就是获取当前日期,在orale中获取当前日子用sysdate,而将他格式化就需要用to_char来进行转换

首先我们来看看定义变量的关键字:

declare v1 varchar2(50);定义v1的字符串大小为50个字节;

dbms_output.put_line('你好');表示输入你好,

在oracle中我们如果需要字符串连接不能用+好连接了,而我们在oracle中用||连接它和java中的+是一样的

如果我们用dbms_output.put_line()没收输入那么我们就需要开启服务器输出

set serveroutput on 打开'服务器输入'然后再使用“/”表示重行一次上面的代码;

如果不打开服务器输入,那么他将不能显示出来,

我们在orale中给变量赋值的是用我们是用”:=“来给变量赋值,而我们需要必将的时候直接用”=“好比较;

v:=”&请输入“这里面得&是表示一个我们需要输入的空格,

 

desc关键字:

desc表示查看表结构: desc emp:

详细请参考:http://www.codesky.net/article/201003/167847.html

 

总结:
which     只能查可执行文件和别名(alias) ,并在PATH变量里面寻找
whereis   只能查二进制文件(含可执行文件)、说明文档,源文件等,从linux文件数据库(/var/lib/slocate/slocate.db 或 /var/lib/mlocate/mlocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件

locate    在数据库里查找,数据库大至每天更新一次,文件名是部分匹配(见 3 locate passwd 的结果:opasswd)
find      最强大,什么都能查,根据条件查找文件,在硬盘上查找,效率很低

 

 

#!/bin/bash
dir=`dirname $0`
cd $dir
curDir=`pwd`

OUTPUT_ORACLE_PATH=$1
COMM_FUNC_FILE=$2

##获取SINGLE类型的oracle信息
getOracleINFOFromHP()
{
    logTrace2File "INFO" "exec getOracleINFOFromHP() on $0"
    ##获取pfile
    if [ -f /tmp/initpfile.ora ]
    then
        rm -rf /tmp/initpfile.ora
    fi
    
    su - oracle -c "sqlplus / as sysdba"<<EOF >/dev/null 2>&1
    create pfile='/tmp/initpfile.ora' from spfile;
    exit
EOF

    cp -rpf /tmp/initpfile.ora $OUTPUT_ORACLE_PATH
    rm -rf /tmp/initpfile.ora 2>/dev/null
    
    ##获取oracle版本号
    su - oracle -c "sqlplus / as sysdba"<<EOF > $OUTPUT_ORACLE_PATH/oracle_version.txt 2>&1
    select * from v\$version;
    exit
EOF

    oraVersion=`cat $OUTPUT_ORACLE_PATH/oracle_version.txt | egrep "^Oracle Database" | grep "Release" | awk -F. '{print $1}' | tail -1 | awk '{print $NF}'`
    
    ##获取system参数信息
    su - oracle -c "sqlplus / as sysdba" < $curDir/get_system_info.sql > $OUTPUT_ORACLE_PATH/oracle_system_information.txt 2>&1
    
    ##获取alert日志文件
    if [ -f tmpORA_SID.txt ]
    then
        rm -rf tmpORA_SID.txt 2>/dev/null
    fi
    su - oracle -c "echo \$ORACLE_SID" > tmpORA_SID.txt
    ORA_SID=`cat tmpORA_SID.txt`
    rm -rf tmpORA_SID.txt 2>/dev/null
    
    if [ -f tmpORACLE_BASE.txt ]
    then
        rm -rf tmpORACLE_BASE.txt 2>/dev/null
    fi
    su - oracle -c "echo \$ORACLE_BASE" > tmpORACLE_BASE.txt
    ORACLE_BASE=`cat tmpORACLE_BASE.txt`
    rm -rf tmpORACLE_BASE.txt 2>/dev/null
    if [ $oraVersion -eq 10 -a -f $ORACLE_BASE/admin/$ORA_SID/bdump/alert_$ORA_SID.log ]
    then
        cp $ORACLE_BASE/admin/$ORA_SID/bdump/alert_$ORA_SID.log $OUTPUT_ORACLE_PATH/alert_$ORA_SID.log 2>/dev/null
    else
        if [ -f alertFile.txt ]
        then
            rm -rf alertFile.txt 2>/dev/null
        fi
        find $ORACLE_BASE/diag/rdbms/ -name "alert_$ORA_SID.log" > alertFile.txt 2>&1
        alertFile=`cat alertFile.txt`
        cp -rpf $alertFile $OUTPUT_ORACLE_PATH/alert_$ORA_SID.log 2>/dev/null
        rm -rf alertFile.txt 2>/dev/null
    fi
    
    ##获取bash_profile
    #oracle_home=`cat /etc/passwd | grep oracle | grep -v grep | awk -F":" '{print $(NF-1)}'`
    cp $ORACLE_USER_HOME/.bash_profile $OUTPUT_ORACLE_PATH 2>/dev/null
    
    su - oracle -c "lsnrctl status" >$OUTPUT_ORACLE_PATH/lsnrctl_status.txt 2>/dev/null
    su - oracle -c "sqlplus -V" >$OUTPUT_ORACLE_PATH/sqlplus-V.txt 2>/dev/null
    cp -rpf $ORACLE_HOME_Real/network/admin/tnsnames.ora $OUTPUT_ORACLE_PATH/tnsnames_oracle.ora
    cp -rpf $IMAP_ROOT/3rdTools/oracle/oradbclient/network/admin/tnsnames.ora $OUTPUT_ORACLE_PATH/tnsnames_PRS.ora

}

##获取SLS类型的oracle信息
##有些问题,需要确认
getOracleINFOFromATAE()
{
    logTrace2File "INFO" "exec getOracleINFOFromATAE() on $0"
    for DUAL_DB_IP in `get_All_DB_FloatIPList`
    do
        ##获取pfile
        ssh -q root@$DUAL_DB_IP "rm -f /tmp/initpfile.ora"
        ssh -q oracle@$DUAL_DB_IP ". $ORACLE_USER_HOME/.bash_profile;sqlplus / as sysdba"<<EOF >/dev/null
        create pfile='/tmp/initpfile.ora' from spfile;
        exit
EOF

        mkdir -p "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP"
        scp -q $DUAL_DB_IP:/tmp/initpfile.ora "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/"
    
        ##获取oracle版本号
        ssh -q oracle@$DUAL_DB_IP ". $ORACLE_USER_HOME/.bash_profile;sqlplus / as sysdba"<<EOF > "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/oracle_version.txt"
        select * from v\$version;
        exit
EOF

        oraVersion=`cat $OUTPUT_ORACLE_PATH/$DUAL_DB_IP/oracle_version.txt | egrep "^Oracle Database" | grep "Release" | awk -F. '{print $1}' | tail -1 | awk '{print $NF}'`
        
        ##获取system参数信息
        ssh -q oracle@$DUAL_DB_IP ". $ORACLE_USER_HOME/.bash_profile;sqlplus / as sysdba" < "$curDir/get_system_info.sql" > $OUTPUT_ORACLE_PATH/$DUAL_DB_IP/oracle_system_information.txt 2>&1
        
        ##获取alert日志文件
        ##获取alert日志有问题
        #ORA_SID=`ssh -q oracle@$DUAL_DB_IP "echo \$ORACLE_SID"`
        #if [ $oraVersion -eq 10 ]
        #then
        #    alertFile=`ssh -q oracle@$DUAL_DB_IP "find $ORACLE_HOME_Real/oradb/admin/ -name 'alert_$ORA_SID.log'"`
        #    scp -q $DUAL_DB_IP:$alertFile "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/alert_$ORA_SID.log" 2>/dev/null
        #else
        #    alertFile=`ssh -q oracle@$DUAL_DB_IP "find $ORACLE_HOME_Real/oradb/diag/rdbms/ -name 'alert_$ORA_SID.log'"`
        #    scp -q $DUAL_DB_IP:$alertFile "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/alert_$ORA_SID.log" 2>/dev/null
        #fi
        
        ##获取bash_profile
        scp -q $DUAL_DB_IP:$ORACLE_USER_HOME/.bash_profile "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/" 2>/dev/null
        ssh -q oracle@$DUAL_DB_IP "lsnrctl status" >"$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/lsnrctl_status.txt" 2>/dev/null
        ssh -q oracle@$DUAL_DB_IP "sqlplus -V" >"$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/sqlplus-V.txt" 2>/dev/null
        scp -q $DUAL_DB_IP:$ORACLE_HOME_Real/network/admin/tnsnames.ora "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/tnsnames_oracle.ora"
        ##有问题,IMAP_ROOT变量是PRS的,而当前遍历取的是DB的IP
        #scp $DUAL_DB_IP:$IMAP_ROOT/3rdTools/oracle/oradbclient/network/admin/tnsnames.ora "$OUTPUT_ORACLE_PATH/$DUAL_DB_IP/tnsnames_PRS.ora"
        
    done
}

##执行sql语句,导出数据
getOracleINFOFromCommon()
{
    logTrace2File "INFO" "exec getOracleINFOFromCommon() on $0"
    cd $OUTPUT_ORACLE_PATH
    masterdb=`get_MasterDB_servicename`
    ##显示格式不友好
    executeSQL $OUTPUT_ORACLE_PATH/dispatchers.txt system "select name,value,isdefault from v\$parameter where name in ('dispatchers','shared_servers','max_shared_servers','max_dispatchers');"
    executeSQL $OUTPUT_ORACLE_PATH/dba_recyclebin.txt system "select '@@@'||count(*) from dba_recyclebin;"
    executeSQL $OUTPUT_ORACLE_PATH/all_usrers.txt system "select username from all_users;"
    ##提示权限无效
    executeSQL $OUTPUT_ORACLE_PATH/archive_log.txt system "archive log list;"
    executeSQL $OUTPUT_ORACLE_PATH/dba_data_files_all.txt system "select tablespace_name, bytes,status from dba_data_files ;"
    executeSQL $OUTPUT_ORACLE_PATH/dba_free_space.txt system "select TABLESPACE_NAME, sum(bytes)/1024/1024 as free_size_M from dba_free_space group by tablespace_name;"
    executeSQL $OUTPUT_ORACLE_PATH/dba_data_files.txt system "select tablespace_name, sum(bytes)/1024/1024 Total_Size_M from dba_data_files group by tablespace_name;"
    ##显示格式不友好
    executeSQL $OUTPUT_ORACLE_PATH/dba_usrers.txt system "select * from dba_users;"
    executeSQL $OUTPUT_ORACLE_PATH/version.txt system "SELECT * FROM V\$VERSION;"
    executeSQL $OUTPUT_ORACLE_PATH/parameter_recyclebin.txt system "show parameter recyclebin;"
    ##提示不存在,R14
    executeSQL $OUTPUT_ORACLE_PATH/D_GGNCELL.txt sumdb "select count(*) from D_GGNCELL;"
    executeSQL $OUTPUT_ORACLE_PATH/D_RNCUNCELL.txt sumdb "select count(*) from D_RNCUNCELL;"
    executeSQL $OUTPUT_ORACLE_PATH/D_GBSCGCGC.txt sumdb "select count(*) from D_GBSCGCGC;"
    executeSQL $OUTPUT_ORACLE_PATH/D_NEINSTANCE.sql sumdb "select NETYPENAME,NEVERSION from D_NEINSTANCE where INVALIDTIME is null group by NEVERSION,NETYPENAME order by NETYPENAME;"
    executeSQL $OUTPUT_ORACLE_PATH/D_neinstance.txt sumdb "select * from D_NEINSTANCE;"
    ##提示不存在,R14
    
    executeSQL $OUTPUT_ORACLE_PATH/T_RAWRESULTNO.txt sumdb "select RAWTBLNAME from T_RAWRESULTNO;"
    executeSQL $OUTPUT_ORACLE_PATH/get_invalid_obj.txt sumdb "select  t.object_name,t.object_type,  t.status from user_objects t where t.status = 'INVALID' and (OBJECT_NAME like 'G\_%\_%\_%' escape '\' or  OBJECT_NAME like 'F\_%\_%\_%' escape '\');"
    executeSQL2 $OUTPUT_ORACLE_PATH/t_PrimaryOssInfo.txt prscommdb "select * from t_PrimaryOssInfo;" "$masterdb"
    executeSQL2 $OUTPUT_ORACLE_PATH/t_ThirdVendorDataPath.txt prscommdb "select * from t_ThirdVendorDataPath;" "$masterdb"
    executeSQL2 $OUTPUT_ORACLE_PATH/t_CustomPath.txt prscommdb "select * from t_CustomPath;" "$masterdb"
    executeSQL2 $OUTPUT_ORACLE_PATH/D_neinstance_prscommdb.txt prscommdb "select * from D_NEINSTANCE;" "$masterdb"
    
    ##多版本问题需要确认
    echo $NOW_VERSION|egrep "V100R009|V100R008|V100R007|V100R006" > /dev/null
    if [ "$?" -eq "0" ]
    then
        logTrace2File "INFO" "exec getOracleINFOFromCommon() Many versions on $0"
        executeSQL $OUTPUT_ORACLE_PATH/imap_tbl_TTask.txt imap_db "select * from tbl_TTask;"
        executeSQL $OUTPUT_ORACLE_PATH/imap_tbl_TTJob.txt imap_db "select * from tbl_TTJob;"
        executeSQL $OUTPUT_ORACLE_PATH/imap_tbl_TTJobType.txt imap_db "select * from tbl_TTJobType;"
        executeSQL $OUTPUT_ORACLE_PATH/imap_db_table_name.txt imap_db "select table_name from user_tables;"
        
        executeSQL $OUTPUT_ORACLE_PATH/imaplogdb_table_name.txt imaplogdb "select table_name from user_tables;"
        executeSQL $OUTPUT_ORACLE_PATH/clear_imaplogdb.log1 imaplogdb "drop table TBL_SYSLOG_BAK_NASTAR;"
        executeSQL $OUTPUT_ORACLE_PATH/clear_imaplogdb.log2 imaplogdb "drop table TBL_AUDIT_BAK_NASTAR;"
        executeSQL $OUTPUT_ORACLE_PATH/clear_imaplogdb.log3 imaplogdb "drop table TBL_TTMP_BAK_NASTAR;"
        executeSQL $OUTPUT_ORACLE_PATH/clear_imaplogdb.log4 imaplogdb "drop table TBL_SECURITY_BAK_NASTAR;"
        
        executeSQL $OUTPUT_ORACLE_PATH/imapeamdb_table_name.txt imapeamdb "select table_name from user_tables;"
        executeSQL $OUTPUT_ORACLE_PATH/imaptmdb_table_name.txt imaptmdb "select table_name from user_tables;"
        executeSQL $OUTPUT_ORACLE_PATH/imapsmdb_table_name.txt imapsmdb "select table_name from user_tables;"
    fi   
}

##获取oracle信息
##根据当前组网类型分为SLS,SINGLE方式分类获取信息
getOracleINFO()
{
    logTrace2File "INFO" "exec getOracleINFO() on $0"
    if [ x"$MACHINE_TYPE" = x"SLS" ]
    then
        getOracleINFOFromATAE      ##SLS
    else
        getOracleINFOFromHP        ##SINGLE
    fi
    getOracleINFOFromCommon
}

##导入公共函数,初始环境信息
initALLEnvINFO()
{
    ##导入xml生成的函数库
    . $COMM_FUNC_FILE
    logTrace2File "INFO" "exec initALLEnvINFO() on $0"
}

##入口函数
main()
{
    initALLEnvINFO
    getOracleINFO
}

main $

if [  -n $str ]
##the String is't  null
#tian the function note
@func
replace_param
@func
com_getConfig
   cat $configFile|perl -ne "print \"\$1\\n\" if /^ \s* $configName \s* = \s* (.*) /ix"
@func #faq
loadSetupDef
@func #faq
    sqlplus <<EOF > execSql.tmp 2>&1
    ${db_user}/${db_passwd}@${db_ins}
    set define off;
    @${sql_file

    #faq notify_backDic(): what's the function?
notify_backupDir
#source something
comFunFile=$2
. $comFunFile >/dev/null 2>&
what if replace it with source $comFunFile

tee print stream to both  stander Output and file
-----------------------   param -----------------------------------------
PRS_UPGRADE_COMM_DE_DBPWD  the databasePWD
PRS_UPGRADE_MASTERIP   echo "$PRS_UPGRADE"
prsUpgradeDir : /export/home/iManagerPRSV100R90
my prs UpgradeLogi      logs for upgradeLog

-----------------------   note -----------------------------------------
we should check the demo before the question is found;
@func unable to replace the String of "&"
sqlplus  set define off
perl -w: warning (recommond)
system "ls -l \$HOME" it's the shell parameter
my $tarfile = "somethign*wicked.tar"
my @dir=qw(fred|flintstonne <barney&rubble> betty)
system "tar" "cvf" $tarfile @dirs
we can execute the perl something "perl"
quotemeta: auto add  the back slash
write_progressInfo
-eq
-ne it doesn't euqal
#!/usr/bin/perl -w
my $what = "I dream of betty rubble,";
if ( $what =~ /\brubb/) {
        print "$^O";
        print "$!";
}
open(IN,"config.ini");
while(<IN>)
{
   print $_;
}
close(IN);

    chown -Rf  ${USERID_OSSUSER}:${GRPID_OSSGROUP} "$curDir" >/dev/null 2>&1
    find ./scripts/ -name "*.sh" -exec chmod a+x {} \; >>$logFile 2>&1
    find ./scripts/ -name "*.pl" -exec chmod a+x {} \; >>$logFile 2>&1
    find ./scripts/ -name "*.pm" -exec chmod a+x {} \; >>$logFile 2>&1
    find ./scripts/ -name "*.py" -exec chmod a+x {} \; >>$logFile 2>&1
we should slect the .pl and  chmod -exec chmod a+x {} \;>>$logFile 2>$1


---------------------- todo list ----------------------------
32.143 package

   ./check_${eachModual}.sh  "$OUTPUT_PATH/$eachModual" "$COMM_FUNC_FILE"
   $XMLToBufferRef

   $$XMLToBufferRef is a referer to $XMLToBufferRef

   open(file "<file") :readfile
    my($XMLToBufferRef,$XMLFileName) = @_;
    initFileEnv($logFileName);
    logTrace("exec readXMLInfo($XMLFileName) function!");
    
    if (!open(fReadXML,"<$XMLFileName")) {
        logTrace("Open log file [$XMLFileName] failed,$!!");
        exit 1;
    }

    
    local $/ = undef;
    $$XMLToBufferRef = <fReadXML>;


   s     将字符串看做一行内容
   g 全局匹配

    local outfilename=$1
    local dbuser=$2
    local sqlstat=$3
    dos2unix `basename ${sql_file}` > /dev/null
    cd $tmpCurDir
    
    which sqlplus
    if [ $? -ne 0 ]
    then
        echo "sqlplus: command not found."
        return 1
    fi
    sqlplus <<EOF > execSql.tmp 2>&1
    ${db_user}/${db_passwd}@${db_ins}
    set define off;
    @${sql_file}
执行 sql_file   
        select t.table_name from dba_tables t where t.owner=upper('${each_dbCommUserName}');

        select t.table_name from dba_tables t where t.owner=upper('')
            tbl_number_sum=`wc -l ${curDir}/tmptbldata/AllUserTbls_${prsdb}_${db_username}.data | awk '{print $1}'`
            tmp_divValue=`expr ${tbl_number_sum} / 500`
            
        ./getTabPropertiesFromTbl.sh
##计算备份数据库时间
calcBackupDBTime()
{
    logTrace2File "INFO" "exec calcBackupDBTime() on $0"
    executeSQL $OUTPUT_COMMON_PATH/database_space.txt $SYSTEM "SELECT TBS SPACE_NAME, SUM(TOTALM) TOTALM_M, SUM(USEDM) USED_M, SUM(REMAINEDM) REMAINED_M, SUM(USEDM) /SUM(TOTALM)*100 USED_R FROM ( SELECT B.FILE_ID ID, B.TABLESPACE_NAME TBS, B.FILE_NAME NAME, B.BYTES/1024/1024 TOTALM, (B.BYTES-SUM(NVL(A.BYTES, 0)))/1024/1024 USEDM, SUM(NVL (A.BYTES,0))/1024/1024 REMAINEDM FROM DBA_FREE_SPACE A, DBA_DATA_FILES B WHERE A.FILE_ID=B.FILE_ID GROUP BY B.TABLESPACE_NAME, B.FILE_NAME, B.FILE_ID, B.BYTES ORDER BY B.TABLESPACE_NAME ) GROUP BY TBS;"
    dbspaceM=`cat $OUTPUT_COMMON_PATH/database_space.txt |egrep "MBBDB|SUMDB|IMAP_DB|SYSTEM|PRSCOMMDB|IMAPSMDB|IMAPEAMDB|IMAPTEMPDB|IMAPLOGDB"|awk '{print $3}'|awk '{total+=$1} END {print total}'`
    ##按照每小时备份45G计算
    backupDBTime=`perl -e "printf(\"%d\", (${dbspaceM}/1024)*60/45)"`
    feedbackUpgradeTime "online" "Backup Database" "$backupDBTime"


executeSQL $OUTPUT_COMMON_PATH/database_space.txt $SYSTEM
"SELECT TBS SPACE_NAME, SUM(TOTALM) TOTALM_M, SUM(USEDM) USED_M, SUM(REMAINEDM) REMAINED_M, SUM(USEDM) /SUM(TOTALM)*100 USED_R FROM (
SELECT B.FILE_ID ID, B.TABLESPACE_NAME TBS, B.FILE_NAME NAME, B.BYTES/1024/1024 TOTALM, (B.BYTES-SUM(NVL(A.BYTES, 0)))/1024/1024 USEDM, SUM(NVL (A.BYTES,0))/1024/1024 REMAINEDM
FROM DBA_FREE_SPACE A, DBA_DATA_FILES B WHERE A.FILE_ID=B.FILE_ID
GROUP BY B.TABLESPACE_NAME, B.FILE_NAME, B.FILE_ID, B.BYTES ORDER BY B.TABLESPACE_NAME )

GROUP BY TBS;


#example: auto_smart_ftp "Changeme@123" ftpuser@192.168.128.126
#返回值 1:无法连接
#返回值 2:用户或密码错误
autoTestFTPConn()
{
    logTrace2File "INFO" "exec autoTestFTPConn() $MaterHostFTP_USER@$ftpHostIp on $0"
    expect -c "set timeout 5;
                spawn ftp $2;
                expect {
                    *assword:* {send -- $1\r;
                                expect {
                                    *530* {send -- exit\r;
                                    exit 2;
                                    }
                                    *230* {send -- exit\r;
                                    exit 0;
                                    }
                                    eof {exit 1;}
                                }
                    }
                    *refused* {send -- exit\r;
                        exit 1;
                    }
                    eof {exit 1;}
                }
                exit 1;
                " >/dev/null
    return $?
}

#example: autoTestSFTPConn "Changeme@123" ftpuser@192.168.128.126
#返回值 1:无法连接
#返回值 2:用户或密码错误
autoTestSFTPConn()
{
    logTrace2File "INFO" "exec autoTestSFTPConn() on $0"
    expect -c "set timeout 5;
                spawn sftp $2;
                expect {
                    *yes/no* {send -- yes\r;
                              expect {
                                    *assword:* {send -- $1\r;
                                                expect {
                                                    *denied* {send -- exit\r;
                                                    exit 2;
                                                    }
                                                    *sftp* {send -- exit\r;
                                                    exit 0;
                                                    }
                                                    eof {exit 1;}
                                                }
                                    }
                                    *refused* {send -- exit\r;
                                        exit 1;
                                    }
                                    eof {exit 1;}
                                }
                    }
                    *assword:* {send -- $1\r;
                                expect {
                                    *denied* {send -- exit\r;
                                    exit 2;
                                    }
                                    *sftp* {send -- exit\r;
                                    exit 0;
                                    }
                                    eof {exit 1;}
                                }
                    }
                    *refused* {send -- exit\r;
                        exit 1;
                    }
                    eof {exit 1;}
                }
                exit 1;
                " >/dev/null
    return $?
}
#!/bin/bash
dir=`dirname $0`
cd $dir
curDir=`pwd`

OUTPUT_RS_PATH=$1
COMM_FUNC_FILE=$2

##此处实现你的调用
checkTab()
{
    logTrace2File "INFO" "exec checkTab() on $0"
    sqlplus  -s <<EOF | grep '@@'> tmp.txt
        $dbArg
        select '@@' tag, count(1) from user_tables where table_name like 'PRST%';
EOF

    local tabNum=""
    tabNum=`grep '@@' tmp.txt |awk '{print $2}'`
    if [ ${tabNum} -gt 3000 ]
    then        
        generReportItem "T03-0005" "FAIL" "Invalid table number is more than 3000, need to clear manually."
    else        
        generReportItem "T03-0005" "PASS" "Check invalid table number successfully."
    fi
}

##导入公共函数,初始环境信息
initALLEnvINFO()
{
    ##导入xml生成的函数库
    . $COMM_FUNC_FILE
    logTrace2File "INFO" "exec initALLEnvINFO() on $0"
}

##入口函数
main()
{
    initALLEnvINFO
    for eachInstance in `get_DBServicenameList_by_DBUname sumdb`
    do
        dbArg=sumdb/${PRS_UPGRADE_COMM_DE_DBPWD}@${eachInstance}
        checkTab
    done

 

转载于:https://www.cnblogs.com/tianzhai/p/3849723.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值