Как распечатать вывод выполнения "tar", пока он не завершит использование telnetlib?
Я попытался распечатать, так как команда 'tar' извлекает файлы, но я не могу распечатать вывод прогресса.
import telnetlib
tn = telnetlib.Telnet("x.x.x.x")
tn.write("tar -xvf a.tar")
print tn.read_until("#")
time.sleep(1800)
Выше код распечатывает весь вывод после выполнения, и нужно подождать, хотя tar
заканчивается менее 1800 секунд.
Еще одна попытка
import telnetlib
tn = telnetlib.Telnet("x.x.x.x")
tn.write("tar -xvf a.tar")
print tn.read_eager()
print tn.read_all()
Этот код не печатает вывод при выполнении tar
, Не могли бы вы дать мне понять, как распечатать tar
работает, и вернитесь, как только он закончит tar
исполнение без ожидания?
Спасибо.
1 ответ
Решение
Я не очень понимаю, в чем была ваша проблема с 1-м сценарием... В любом случае вы можете попробовать это?
tn.write("tar -xvf a.tar")
while True:
resp = tn.read_until("#", 1.0)
if 0 == len(resp): break
print resp
print "done"
Цикл ожидает, пока соединение telnet замолчает, указав параметр времени ожидания 1.0
,