Как узнать, завершен ли процесс копирования (scp) с использованием python? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть программа на python для анализа логов.Журнал находится на другом сервере, который имеет номер порта и пароль.

Я не могу сохранить свой код Python на этом сервере.Поэтому мне нужно скопировать файл на сервер, где хранится моя программа.

Я сделал это:

popen('''sshpass -p "password" scp -r \
    admin@192.158.11.109:/home/admin/DontDeleteMe/%s /home/admin/''' % fileName)

Но если файл большой, программа запустится до завершения процесса копирования..

1 Ответ

0 голосов
/ 10 декабря 2018

popen() не ожидает завершения процесса.Вы можете использовать subprocess.call():

exitcode = subprocess.call('''sshpass -p "password" scp -r \
    admin@192.158.11.109:/home/admin/DontDeleteMe/%s /home/admin/''' % fileName,
    shell=True)

Согласно Python doc :

Модуль subprocess позволяет создавать новые процессы, подключаться ких каналы ввода / вывода / ошибки и получения их кодов возврата. Этот модуль предназначен для замены нескольких более старых модулей и функций:

os.system
os.spawn*
os.popen*
popen2.*
commands.*
...