Как к grep непосредственно к ftp?

Что не так с этим синтаксисом? Как записать вывод непосредственно на удаленном ftp потому что недостаток места на жестком диске?

Эта команда работает, но нет никакого пространства жесткого диска для получения полного результата:

find /somedir/ -name '*.*' -exec grep -i 'some string' /dev/null {} + >> /somedir/output.txt

Я попробовал что-то как, но я получаю Ошибку "Операция, не применимая":

find /somedir/ -name '*.*' -exec grep -i 'some string' /dev/null {} + >> ftp -u ftp://user@ftp.domain.com /somedir/output.txt
2
задан 10 July 2015 в 16:21
2 ответа

Я сделал это, я не знаю, является ли это более очевидным способом.

#! /usr/bin/perl -w

use Net::FTP;

open(TMPOUT, ">>","/tmp/tmpout.txt");
*STDOUT = *TMPOUT; ### Redirect STDOUT to /tmp/tmpout.txt
#select TMPOUT;
my ($ftp, $host, $user, $pass, $dir, $fpath);

$host = "localhost";
$user = "myftpuser";
$pass = "myftppassword";
$dir = "/tmp";


$ftp = Net::FTP->new($host, Debug => 0);
$ftp->login($user, $pass) || die $ftp->message;
$ftp->cwd($dir);







while(<STDIN>) { print $_ . "\n"; } ####Printing the STDING to /tmp/tmpout.txt
$ftp->append("/tmp/tmpout.txt", "myremoteout.txt"); ### Now i append the oupout of the local file /tmp/tmpout.txt to the remote ftp file /tmp/myremoteout.txt
$ftp->quit;

Теперь chmod + x f.pl и find / -тип f | ./f.pl

вывод grep "^ /" /tmp/myremoteout.txt на ftp-сервере:

/usr/share/doc/gcc-4.7-base/README.Bugs
/usr/share/doc/gcc-4.7-base/NEWS.html
/usr/share/doc/gcc-4.7-base/changelog.Debian.gz
/usr/share/doc/gcc-4.7-base/changelog.gz
/usr/share/doc/gcc-4.7-base/quadmath/changelog.gz
/usr/share/doc/gcc-4.7-base/test-summary.gz
/usr/share/doc/gcc-4.7-base/gomp/changelog.gz
/usr/share/doc/gcc-4.7-base/TODO.Debian
/usr/share/doc/gcc-4.7-base/gcc/changelog.gz
/usr/share/doc/gcc-4.7-base/README.ssp
/usr/share/doc/gcc-4.7-base/README.Debian.amd64.gz
/usr/share/doc/gcc-4.7-base/test-summaries/obj-c++.sum.gz
/usr/share/doc/gcc-4.7-base/test-summaries/libmudflap.sum.gz
/usr/share/doc/gcc-4.7-base/test-summaries/libgomp.sum.gz
/usr/share/doc/gcc-4.7-base/test-summaries/libstdc++.sum.gz
/usr/share/doc/gcc-4.7-base/test-summaries/libgo.sum.gz
/usr/share/doc/gcc-4.7-base/test-summaries/go.sum.gz
1
ответ дан 3 December 2019 в 11:39
grep -r 'some sting' /somedir | ssh user@host "dd of=outputfile"

Это может помочь, если вы можете использовать ssh вместо ftp.

1
ответ дан 3 December 2019 в 11:39

Теги

Похожие вопросы