2016-05-11 8 views
1

Я пытаюсь войти в систему как пользователь с помощью pexpect и пытается напечатать все crons доступны пустая строка.Использование pexpect, чтобы получить вывод команды «LS»

  1. Не удалось выяснить проблему с этим кодом
  2. Если есть какой-либо лучший способ перечислить хроны другого пользователя, данное именем пользователя и паролем

Любых указатели или предложения будет гораздо оценили.

ответ

1

Если вы можете организовать для настройки беспарольного sudo доступа, то выше становится просто:

import subprocess 
output = subprocess.check_output('sudo -u myuser crontab -l', shell=True) 

Если вам нужно продолжать использовать su, то вы можете передать ему команду и избегать попыток разобрать снаряд приглашения:

import pexpect 
passwd = "mypass" 
child = pexpect.spawn('su myuser -c "crontab -l"') 
child.expect('Password:') 
child.sendline(passwd) 
child.expect(pexpect.EOF) 

print child.before 
+0

Спасибо, работает отлично. – Sokio