pexpect
을 사용하여 로그인 한 원격 서버에서 명령을 실행하고 문자열 형식으로 결과를 변수에 저장할 수 있습니까? ?원격 서버에서 명령 실행 및 결과를 Python 스크립트의 문자열 변수에 저장
COMMAND_PROMPT = '[#$] '
TERMINAL_PROMPT = '(?i)terminal type\?'
TERMINAL_TYPE = 'vt100'
SSH_NEWKEY = '(?i)are you sure you want to continue connecting'
child = pexpect.spawn('ssh -l %s %s'%(loginuser, servername))
i = child.expect([pexpect.TIMEOUT, SSH_NEWKEY, COMMAND_PROMPT, '(?i)password'])
if i == 0: # Timeout
print('ERROR! could not login with SSH. Here is what SSH said:')
print(child.before, child.after)
print(str(child))
sys.exit (1)
if i == 1: # In this case SSH does not have the public key cached.
child.sendline ('yes')
child.expect ('(?i)password')
if i == 2:
# If a public key was setup to automatically login
pass
if i == 3:
child.sendline(password)
# Now we are either at the command prompt or
# the login process is asking for our terminal type.
i = child.expect ([COMMAND_PROMPT, TERMINAL_PROMPT])
if i == 1:
child.sendline (TERMINAL_TYPE)
child.expect (COMMAND_PROMPT)
지금 내가에 로그인 서버에서 다음 명령을 실행하고 내 파이썬 스크립트에서 문자열로 결과를 저장한다고 가정 :
나는 다음과 같은 방법으로 서버에 대한 연결을 만든 자체 :ps -ef|grep process1
어떻게 수행 할 수 있습니까?
당신이 정당성을 중요시한다면'pidof process1'을 원한다. – tripleee
내 스크립트에서 ** 로그인 한 서버에서 ** pidof process1' **을 실행하고 현재 ** 내 스크립트 **가있는 서버가 아닌 경우 어떤 명령을 사용해야하며 결과를 a로 저장해야합니까? 문자열 –