Pelo que entendi, você quer executar um comando localmente , mas salvar a saída do stderr em um arquivo de log remoto.
Tente substituição de processo :
local_command 2> >(ssh somemachine 'cat >logfile')
Aqui, >(...)
é substituição de processo . Ele cria um objeto semelhante a um arquivo a partir do comando nos parênteses. Portanto, 2>
redireciona o stderr para esse objeto semelhante a um arquivo, resultando na saída sendo salva na máquina remota.
Ou use apenas o redirecionamento antigo:
{ local_command 2>&1 1>&3 | ssh somemachine 'cat >logfile'; } 3>&1
Aqui, o stderr é redirecionado para o stdout para que possamos canalizá-lo para o ssh. Para que o stdout não vá para o ssh, nós o redirecionamos para o identificador de arquivo 3. No final do comando, o identificador de arquivo 3 é redirecionado para stdout para que apareça no terminal.