in reply to Re^2: scp output without having to use "Net::SCP" in Perl
in thread scp output without having to use "Net::SCP" in Perl

You're trying to scp a command, and the output, to another host? Try breaking that up into separate tasks -- this is what /tmp is for. Connect via ssh to the host and run your command, redirecting the output to /tmp/someuniquefile, then scp the file to whatever location you want. When you start introducing commands with pipes and such in variables for remote execution, the complexity increases. Do one task at a time, and you can manually verify that they work separately.

Edit: I misread a piece -- you don't scp data, you scp a file. Save the output to /tmp/something, and scp that.
  • Comment on Re^3: scp output without having to use "Net::SCP" in Perl

Replies are listed 'Best First'.
Re^4: scp output without having to use "Net::SCP" in Perl
by pjzero@90 (Novice) on Jun 03, 2015 at 23:10 UTC
    Let's try this again, I do a ssh over to a host, and grab certain files from /tmp, this works fine, I then want to send these logs to a second host. my @OUTPUT = `ssh $USER\@$host ls -ltr /tmp | grep logs`; foreach my $output (@OUTPUT) { chomp ($output); system("/usr/bin/scp", "--", $output, "user\@host:/home/user/logs"; } I now get "No such file or directory", so your right, I need to put the log itself into a file, any ideas or should I use a different approach? Thanks, -- pjzero@90

      Have you read all the advice you have been given? Your ls -ltr command is returning all sorts of information: file privileges, file owner, size, modification date, file name. I don't think you want or need all that, and scp certainly is confused by it. Use ls -1tr instead. It will return the file name only.

      Dum Spiro Spero