LINUX.ORG.RU

Можно ли перенаправить вывод lftp в канал?


0

1

Запускаю примерно следующую команду для зеркалирования некоторых данных с удаленной машины на локальную.

lftp -c «lcd update ; ftp://192.168.10.2/update; mirror »

Но запускаю это дело из другой проги. Зеркалирование занимает некоторое время. Хотелось бы отобразить в этой проге пользователю хоть какую-нибудь информацию о том, что процесс идет. Можно вывод lftp перенаправить в канал, что бы читать его из той проги, откуда запускается lftp?

Ответ на: комментарий от AITap

Проблема в том, чтобы lftp в этот stderr кидал свои сообщения. А он что-то этого не делает. Кстати, почему именно stderr?

zloy_starper ★★★
() автор топика
Ответ на: комментарий от zloy_starper

Ну читай из stdout, делов то. Откуда получится, оттуда и читай. man popen и аналоги в твоём языке.

legolegs ★★★★★
()
Ответ на: комментарий от zloy_starper

И действительно, не пишет. Извиняюсь.

stderr - потому что логично писать всякие интерактивности именно туда.
Например, tar с опцией v пишет имена файлов именно в stderr, потому что stdout может быть занят самим архивом.

Может быть, запускать сам lftp как-то по-другому (например, оставлять ему настоящие stdout и stderr и ждать завершения или просто запускать что-то вроде xterm -e 'sh -c lftp -c «lcd update ; ftp://192.168.10.2/update; mirror »')?

Ключ mirror -v не поможет?

AITap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.