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/
,如需转载,请注明出处,否则将追究法律责任。