Как выполнить удаленную команду и передать ее в локальный файл?

Можно ли сделать это:

ssh user@socket command /path/to/file/on/local/machine

То есть, я хочу выполнить удаленную команду, используя локальный файл за один шаг, без предварительного использования scp для копирования файла.

3 Solutions collect form web for “Как выполнить удаленную команду и передать ее в локальный файл?”

Вы пропустили только один символ =)

 ssh user@socket command < /path/to/file/on/local/machine 

Один из способов, который работает независимо от команды, – сделать файл доступным на удаленном компьютере через удаленную файловую систему. Поскольку у вас есть соединение SSH:

  1. Установите обратный туннель SSH . См. Также SSH легко скопировать файл в локальную систему
  2. Установите дерево каталогов на вашем компьютере, содержащее файл для совместного использования на удаленном компьютере с помощью SSHFS . ( Пример )
 # What if remote command can only take a file argument and not read from stdin? (1_CR) ssh user@socket command < /path/to/file/on/local/machine ... cat test.file | ssh user@machine 'bash -c "wc -l <(cat -)"' # 1_CR 

В качестве альтернативы замене процесса bash < <(xargs -0 -n 1000 cat) <(cat -) или < <(xargs -0 -n 1000 cat) (см. Ниже) вы можете просто использовать xargs и cat для передачи содержимого указанных файлов в wc -l (который более портативный).

 # Assuming that test.file contains file paths each delimited by an ASCII NUL character \0 # and that we are to count all those lines in all those files (provided by test.file). #find . -type f -print0 > test.file # test with repeated line count of ~/.bash_history file for n in {1..1000}; do printf '%s\000' "${HOME}/.bash_history"; done > test.file # xargs & cat ssh localhost 'export LC_ALL=C; xargs -0 -n 1000 cat | wc -l' <test.file # Bash process substitution cat test.file | ssh localhost 'bash -c "export LC_ALL=C; wc -l < <(xargs -0 -n 1000 cat)"' 
  • Как я могу запустить startx и запустить сценарий удаленно через SSH?
  • Перенаправить серверный сервер SSH
  • Как rysnc работает над ssh?
  • Как получить информацию о файлах, скопированных на мой компьютер с помощью команды удаленного rsync?
  • Объединить и передать как параметр, bash
  • SSH не может подключиться с удаленного компьютера через некоторое время
  • ssh изменить пользователя для одного хоста
  • Как правильно настроить Danted?
  • «PermitRootLogin no» в конфигурации sshd не предотвращает `su``
  • SSH требует аутентификации с ключами
  • Окончания строк при использовании экрана GNU
  • Interesting Posts

    Добавление привязок для ed2k: // связей с xdg-open?

    X11 пересылка Amazon EC2 значение порядкового номера в переменной DISPLAY

    traceroute (с TCP) не фиксирует полученные ответы ICMP

    Как я могу предложить изменение в программе входа?

    исходный файл с ключами и значениями и использовать его в perl-коде

    Как я могу перетаскивать окна в Openbox без заголовка?

    Измените определенную часть файла с помощью сценария оболочки

    Назначение в фигурных скобках и внешних фигурных скобках в awk

    «Ls» в выводах каталога «Нет такого файла или каталога» для некоторых файлов

    Текстовый режим ввода текста tty очень мал в debian. Как увеличить?

    Amazon EC2 micro instance большое количество запросов ввода-вывода

    Используйте sed и sed самостоятельно, чтобы выполнить подстановку в строке, начинающейся с определенной строки, только если!

    Как добавить строки файла в конец строк другого файла?

    Тип и скорость процессора с помощью команды lscpu

    Двойной монитор, два разных настольных компьютера?

    Linux и Unix - лучшая ОС в мире.