Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

 
Reply to this topic Start new topic
> Tar в конвейере на Windows, tar -czf - somefile.txt | ncftpput -u user -p password -c somehost.ru
Novascriptum
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2016, в 21:22
Сообщение #1


Участник
Иконка группы

Сообщений: 40

Вставить имя   :   Цитата

Группа: Участники

Автор темы
Всем доброго времени!
Где-то нашёл в инете любопытный способ создания архивов и их отправки по FTP на лету без создания промежуточных файлов - идея очень понравилась. Делается примерно так:
Код
tar -czf - somefile.txt | ncftpput -u user -p password -c somehost.ru /somefile.txt


Проверял в CentOS 6.5, всё работает. Захотел повторить трюк в Windows, скачал tar 1.21 отсюда, а NcFTP Client 3.2.5 for Microsoft Windows отсюда.

И вроде бы всё хорошо, по отдельности обе утилиты работают, но подружить их вместе не получается ни в какую. Это именно в Windows:
Код
D:\utils>tar -cf - "D:\_temp\\video.mp4" | "C:\Windows\ncftpput" -u user -p password -c somehost.ru /v.mp4
tar: Removing leading `D:\' from member names
tar: -: Cannot write: Broken pipe
tar: Error is not recoverable: exiting now

Уже начитался в интернете, что при указании путей нужно экранировать слэши, чтобы не возникало спец. символов (именно по этой причине указано два \ перед video.mp4).
Причём в паре со split'ом тот же самый tar прекрасно работает:
Код
D:\utils>tar -cf - "D:\_temp\\video.mp4" | split -b 10m - "D:\_temp\video.tar"
tar: Removing leading `D:\' from member names

D:\utils>

В результате получаем распиленный на части архив, всё отлично.
Что же не так в первом случае? Уже всю голову сломал. Буду признателен за любые идеи.
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2016, в 21:44
Сообщение #2


grammatikführer
Иконка группы

Сообщений: 13006

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Видимо под виндой ncftpput ведёт себя как-то по-другому. И путь вообще правильный указан?
Цитата(Novascriptum @ 6th October 2016 - в 21:22) *
Код
"C:\Windows\ncftpput"



--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
serzh-z
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2016, в 23:42
Сообщение #3


Маньяк
Иконка группы

Сообщений: 6553

Вставить имя   :   Цитата

ОС: Android, GNU/Linux, Windows
Город: Воронеж

Группа: Бывшие модераторы

Novascriptum
Я бы добавил `-d debug.log' к ncftpput, уверен, что проблема, скорее, в нём, чем в tar и это он закрывает stdin.


--------------------
Что-то кончается, что-то начинается...
Go to the top of the page
 
+Quote Post
Novascriptum
bookmark
gyfbbdvkffmrljmmmwd
Oct 8 2016, в 10:29
Сообщение #4


Участник
Иконка группы

Сообщений: 40

Вставить имя   :   Цитата

Группа: Участники

Автор темы
Цитата(Novascriptum @ Oct 8 2016, в 12:28) *
Novascriptum
Я бы добавил `-d debug.log' к ncftpput, уверен, что проблема, скорее, в нём, чем в tar и это он закрывает stdin.



Запустил ncftpput в этом конвйере с ключом -d для отладки, такой получил ответ:
Код
2016-10-07 23:06:40  LibNcFTP 3.2.5 (January 17, 2011) compiled for Windows
2016-10-07 23:06:40  220: --------- Welcome to Pure-FTPd [privsep] ----------
2016-10-07 23:06:40       You are user number 29 of 1000 allowed.
2016-10-07 23:06:40       Local time is now 20:06. Server port: 21.
2016-10-07 23:06:40       This is a private system - No anonymous login
2016-10-07 23:06:40       IPv6 connections are also welcome on this server.
2016-10-07 23:06:40       You will be disconnected after 15 minutes of inactivity.
2016-10-07 23:06:40  Connected to somehost.ru.
2016-10-07 23:06:40  Cmd: USER someuser
2016-10-07 23:06:40  331: User someuser OK. Password required
2016-10-07 23:06:40  Cmd: PASS xxxxxxxx
2016-10-07 23:06:40  230: This server supports FXP transfers
2016-10-07 23:06:40       OK. Current restricted directory is /
2016-10-07 23:06:40  Cmd: PWD
2016-10-07 23:06:40  257: "/" is your current location
2016-10-07 23:06:40  Logged in to somehost.ru as someuser.
2016-10-07 23:06:40  Cmd: FEAT
2016-10-07 23:06:40  211: Extensions supported:
2016-10-07 23:06:40        EPRT
2016-10-07 23:06:40        IDLE
2016-10-07 23:06:40        MDTM
2016-10-07 23:06:40        SIZE
2016-10-07 23:06:40        REST STREAM
2016-10-07 23:06:40        MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
2016-10-07 23:06:40        MLSD
2016-10-07 23:06:40        TVFS
2016-10-07 23:06:40        ESTA
2016-10-07 23:06:40        PASV
2016-10-07 23:06:40        EPSV
2016-10-07 23:06:40        SPSV
2016-10-07 23:06:40        ESTP
2016-10-07 23:06:40       End.
2016-10-07 23:06:40  Cmd: HELP SITE
2016-10-07 23:06:41  214: The following SITE commands are recognized
2016-10-07 23:06:41        ALIAS
2016-10-07 23:06:41        CHMOD
2016-10-07 23:06:41        IDLE
2016-10-07 23:06:41        UTIME
2016-10-07 23:06:41       Pure-FTPd - http://pureftpd.org/
2016-10-07 23:06:41  Cmd: CLNT NcFTPPut 3.2.5 Windows
2016-10-07 23:06:41  500: Unknown command
2016-10-07 23:06:41  Cmd: TYPE I
2016-10-07 23:06:41  200: TYPE is now 8-bit binary
2016-10-07 23:06:41  Cmd: PASV
2016-10-07 23:06:41  227: Entering Passive Mode (94,242,236,87,135,201)
2016-10-07 23:06:41  Cmd: STOR /v2.mp4
2016-10-07 23:06:41  150: Accepted data connection
2016-10-07 23:06:41  226: File successfully transferred
2016-10-07 23:06:41       0.071 seconds (measured here), 23.18 Kbytes per second
2016-10-07 23:06:41  Cmd: MDTM 20161007180641 /v2.mp4
2016-10-07 23:06:41  550: Can't check for file existence
2016-10-07 23:06:41  Cmd: QUIT
2016-10-07 23:06:41  221: Goodbye. You uploaded 2 and downloaded 0 kbytes.
2016-10-07 23:06:41       Logout.


Вот эта часть
Код
2016-10-07 23:06:41  Cmd: CLNT NcFTPPut 3.2.5 Windows
2016-10-07 23:06:41  500: Unknown command

выглядит как-то подозрительно...

Проблема действительно где-то на стороне ncftpput:
Код
D:\utils>type img.jpg | "C:\Windows\ncftpput" -u user -p pass -c somehost.ru /img.jpg
Попытка записи в несуществующий канал.


Только вот установить, в чём дело, до сих пор не получается. Может быть есть какая-то альтернатива ncftpput, позволяющая так же использовать отправку по FTP в контейнере? Желательно под Windows, конечно. Хотя рассмотрю все варианты, конечно.

Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 8 2016, в 10:50
Сообщение #5


grammatikführer
Иконка группы

Сообщений: 13006

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(Novascriptum @ 8th October 2016 - в 10:29) *
Может быть есть какая-то альтернатива ncftpput, позволяющая так же использовать отправку по FTP в контейнере?

tar -cz yourfiles | ssh user@host cat \> archive.tar.gz
А FTP закопайте.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
Novascriptum
bookmark
gyfbbdvkffmrljmmmwd
Oct 8 2016, в 11:17
Сообщение #6


Участник
Иконка группы

Сообщений: 40

Вставить имя   :   Цитата

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Oct 8 2016, в 12:50) *
tar -cz yourfiles | ssh user@host cat \> archive.tar.gz
А FTP закопайте.


Так работает, спасибо. Но, к сожалению, далеко не каждый файловый сервер разрешает к нему SSH-подключения. Я бы хотел использовать dfiles.ru (хранят файлы 90 дней - для бэкапов идеально), а они позволяют закачку файлов только по FTP. Так что вопрос остаётся актуальным.
Go to the top of the page
 
+Quote Post
serzh-z
bookmark
gyfbbdvkffmrljmmmwd
Oct 13 2016, в 01:01
Сообщение #7


Маньяк
Иконка группы

Сообщений: 6553

Вставить имя   :   Цитата

ОС: Android, GNU/Linux, Windows
Город: Воронеж

Группа: Бывшие модераторы

Novascriptum
Проблема в
QUOTE
2016-10-07 23:06:41 Cmd: MDTM 20161007180641 /v2.mp4
2016-10-07 23:06:41 550: Can't check for file existence
Возможно, что для виндовой версии ncftpput нужно заменить "/" на "\" или добавить какой-нибудь префикс. А может это просто баг.

QUOTE (Novascriptum @ 8th October 2016 - в 11:17) *
Так что вопрос остаётся актуальным.
В конце концов - проблема решается просто: Windows + Docker + настоящий ncftpput. К тому же сейчас подсистему Linux встроили в Windows 10.


--------------------
Что-то кончается, что-то начинается...
Go to the top of the page
 
+Quote Post

 Reply to this topic Start new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 17th December 2017 - в 11:12




Rating@Mail.ru