it-swarm-es.tech

Redirigir stdout sobre ssh

Me gustaria correr

something > file

en un sistema remoto a través de ssh, pero si ejecuto

ssh Host something > file

la redirección se ejecuta localmente como ssh etc > file

Lo he intentado con ' o '' o dd o con una tubería | en cambio, pero no puedo hacer que funcione. ¿Cómo se puede hacer esto?

19
franziskus

Tratar:

ssh Host 'something > file'

Aquí hay una demostración artificial de una forma de manejar la redirección, tuberías y citas:

ssh Host date -d yesterday \| awk "'{print $1}'" \> 'file" "with\ spaces.out'

La tubería y la redirección se escapan en lugar de estar contenidas en un conjunto externo de comillas, lo que reduce la necesidad de escapar de un nivel de comillas. Las comillas simples para el comando AWK están protegidas por las comillas dobles que las rodean. El nombre de archivo podría protegerse de la misma manera, pero aquí muestro cómo las comillas simples protegen las comillas dobles y el escape.

Aún más simple, en lugar de:

ssh Host something > file

hacer:

ssh Host "something > file"
12
Amala

La solución sugerida también funciona con tuberías

ssh Host 'some_command | some_other_command'
3
Mike