ITPub博客

首页 > Linux操作系统 > Linux操作系统 > python su - oracle

python su - oracle

原创 Linux操作系统 作者:perfychi 时间:2013-04-19 18:53:22 0 删除 编辑
import time
import paramiko
import re

def verification_ssh(host,username,password,port,oracle_pwd,cmd):
    pattern=re.compile(r'.*\]\s*(\$\s*)$', re.S)    
    s=paramiko.SSHClient()  
    s.load_system_host_keys()  
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    s.connect(hostname = host,port=int(port),username=username, password=password)
    if username != 'oracle':
        ssh = s.invoke_shell()
        time.sleep(0.2)
        ssh.send('su - oracle \n')
        buff = ''
        while not buff.endswith('Password: '):
            resp = ssh.recv(9999)
            buff +=resp
        ssh.send(oracle_pwd)
        ssh.send('\n')
        buff = ''
        while not pattern.match(buff):
            resp = ssh.recv(9999)
            buff +=resp
        ssh.send(cmd)
        ssh.send('\n')
        buff = ''
        while not pattern.match(buff):
            resp = ssh.recv(9999)
            buff +=resp
        s.close()
        result = buff
    else:
        stdin, stdout, stderr = s.exec_command(cmd)
        result = stdout.read()
        s.close()
    return result

>>> (host,username,password,port,oracle_pwd,cmd)=('192.168.21.XX', 'chipengfei', 'XXXX', 22, 'YYYY', 'lsnrctl status')

>>> verification_ssh(host,username,password,port,oracle_pwd,cmd)
'lsnrctl status\r\n\r\nLSNRCTL for Linux: Version 10.2.0.5.0 - Production on 19-APR-2013 18:57:05\r\n\r\nCopyright (c) 1991, 2010, Oracle.  All rights reserved.\r\n\r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.14)(PORT=1521)))\r\nSTATUS of the LISTENER\r\n------------------------\r\nAlias                     LISTENER\r\nVersion                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production\r\nStart Date                21-MAR-2013 22:42:02\r\nUptime                    28 days 20 hr. 15 min. 2 sec\r\nTrace Level               off\r\nSecurity                  ON: Local OS Authentication\r\nSNMP                      OFF\r\nListener Parameter File   /oracle/product/10.2.0.5/network/admin/listener.ora\r\nListener Log File         /oracle/product/10.2.0.5/network/log/listener.log\r\nListening Endpoints Summary...\r\n  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.21.14)(PORT=1521)))\r\n  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))\r\nServices Summary...\r\nService "PLSExtProc" has 1 instance(s).\r\n  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...\r\nService "st.anhui.wxxr.com.cn" has 1 instance(s).\r\n  Instance "wxxrdb", status READY, has 1 handler(s) for this service...\r\nService "st_XPT.anhui.wxxr.com.cn" has 1 instance(s).\r\n  Instance "wxxrdb", status READY, has 1 handler(s) for this service...\r\nService "wxxrdb" has 1 instance(s).\r\n  Instance "wxxrdb", status UNKNOWN, has 1 handler(s) for this service...\r\nService "wxxrdb.anhui.wxxr.com.cn" has 1 instance(s).\r\n  Instance "wxxrdb", status READY, has 1 handler(s) for this service...\r\nService "wxxrdbXDB.anhui.wxxr.com.cn" has 1 instance(s).\r\n  Instance "wxxrdb", status READY, has 1 handler(s) for this service...\r\nThe command completed successfully\r\n[oracle@anhuidbs ~]$'

>>> print verification_ssh(host,username,password,port,oracle_pwd,cmd)
lsnrctl status

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 19-APR-2013 18:57:42

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.14)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                21-MAR-2013 22:42:02
Uptime                    28 days 20 hr. 15 min. 40 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/product/10.2.0.5/network/admin/listener.ora
Listener Log File         /oracle/product/10.2.0.5/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.21.14)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "st.anhui.wxxr.com.cn" has 1 instance(s).
  Instance "wxxrdb", status READY, has 1 handler(s) for this service...
Service "st_XPT.anhui.wxxr.com.cn" has 1 instance(s).
  Instance "wxxrdb", status READY, has 1 handler(s) for this service...
Service "wxxrdb" has 1 instance(s).
  Instance "wxxrdb", status UNKNOWN, has 1 handler(s) for this service...
Service "wxxrdb.anhui.wxxr.com.cn" has 1 instance(s).
  Instance "wxxrdb", status READY, has 1 handler(s) for this service...
Service "wxxrdbXDB.anhui.wxxr.com.cn" has 1 instance(s).
  Instance "wxxrdb", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@anhuidbs ~]$

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27042095/viewspace-758904/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-06-06

  • 博文量
    484
  • 访问量
    2975561