%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%83%D1%8E%20%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C%20SSH.png)
Я хочу перенаправить вывод локальной команды (используя локальные файлы) в удаленную команду.
Я знаю, что можно сделать что-то вроде этого:
[user@local ~]$ head -c 5 /dev/urandom | ssh [email protected] "cat"
... но я хотел бы узнать, есть ли способ сделать это через консоль SSH, как команда scp
, которая ссылается как на локальные, так и на удаленные файлы:
[user@remote ~]$ scp test.txt remote:/new.txt
Копирование локального файла на удаленный сервер нежелательно, я бы хотел просто перенаправить вывод.
**Обе машины работают под управлением Linux (bash).
решение1
Я думаю, что лучший способ — перенаправить вывод в файл, а затем скопировать этот файл на удаленный хост, а затем запустить там команду cat.
$ head -c 5 /dev/urandom > random && scp ./random user@remoteip:/path/. && cat /path/random
Надеюсь, это удовлетворит ваши потребности. Ответьте, если нет.
решение2
Это похоже на этот вопрос:
Итак, похоже, консенсус заключается в том, чтобы настроить инвертированный сеанс ssh с опцией -R и запустить stdout через него.