Я пытаюсь проверить, существует ли файл через SSH с использованием pexpect. У меня большая часть кода работает, но мне нужно поймать значение, чтобы я мог утверждать, существует ли файл. Код, который я сделал, приведен ниже:Проверка файла существует по ssh
def VersionID():
ssh_newkey = 'Are you sure you want to continue connecting'
# my ssh command line
p=pexpect.spawn('ssh [email protected]')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==0:
p.sendline('yes')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==1:
p.sendline("word")
i=p.expect('[email protected]:')
p.sendline("cd /opt/ad/bin")
i=p.expect('[email protected]:')
p.sendline('[ -f email_tidyup.sh ] && echo "File exists" || echo "File does not exists"')
i=p.expect('File Exists')
i=p.expect('[email protected]:')
assert True
elif i==2:
print "I either got key or connection timeout"
assert False
results = p.before # print out the result
VersionID()
Спасибо за любую помощь.
@chrissygormley - Я полагаю, вы не собираетесь использовать ssh-agent для хранения вашей кодовой фразы? Если бы вы это сделали, вы могли бы полностью избавиться от pexpect и просто сделать: ssh user @ host «command» –
Я отправил свой ответ на этот вопрос ниже. Спасибо – chrissygormley