Необходима рабочая команда.
Есть вывод команды, который нужно потоком лить на ftp, без временных файлов.
например
anyprogram | echo "put -passwd" | ftp -a localhost
anyprogram - выдает инфу, которую нужно динамично лить на ftp
Вариант с временными файлами не подходит из-за огромного объема файлов (около 50 гб).
>Необходима рабочая команда.
>Есть вывод команды, который нужно потоком лить на ftp, без временных файлов.
>
>например
>anyprogram | echo "put -passwd" | ftp -a localhost
>anyprogram - выдает инфу, которую нужно динамично лить на ftp
>Вариант с временными файлами не подходит из-за огромного объема файлов (около 50
>гб).^ а так что? Может какую вариацию fifo использовать (разрешитьт записывать лишь определённый объём информации. Т.е. записали 1 мегабайт - ftp прочёл, только потом записали 2 мегабайт - ftp прочёл... но тгда ограничивается скорость). И почему BASH, может что-то другое?
FTP - очень плохая идея по многим причинам. rsh+Kerberos или даже ssh или даже просто rsh сильно лучше.Формально вопрос решается с помощью Perl Net::FTP
use Net::FTP;
my $remote_filename='remote_file';
my $ftp = Net::FTP->new('server.address', Debug => 0);
$ftp->login("first_server_username","first_server_password");
$ftp->put(\*STDIN,$remote_filename) || die "Upload from STDIN to $remote_filename failed\n";
>Необходима рабочая команда.
>Есть вывод команды, который нужно потоком лить на ftp, без временных файлов.
>
>например
>anyprogram | echo "put -passwd" | ftp -a localhost
>anyprogram - выдает инфу, которую нужно динамично лить на ftp
>Вариант с временными файлами не подходит из-за огромного объема файлов (около 50
>гб).sproot@matrix:~$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.7)
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls pub/otchet.xls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp> quit
221 Goodbye.
sproot@matrix:~$
sproot@matrix:~$ cat .netrc
machine localhost
login anonymous
password bla-bla-bla@smile.comsproot@matrix:~$
sproot@matrix:~$ ftp localhost <<FTP
> cd pub
> put "|cat ~/otchet.xls" otchet.xls
> FTPsproot@matrix:~$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.7)
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls pub/otchet.xls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw------- 1 1000 65534 96768 Feb 07 07:43 otchet.xls
226 Directory send OK.
ftp> quit
221 Goodbye.
sproot@matrix:~$
Создать список файлов, думаю, проблем не составит.