Suponha que eu tenha o seguinte script em execução em um host remoto:
$ cat remote_script
#!/bin/bash
exec 3>file.log
echo "Output to stdout"
echo "Output to stderr" >&2
echo "Output to fd3 >&3
Quando esse script for executado na máquina remota, ele redirecionará fd3 para um arquivo na máquina remota.
Quando me conecto via ssh ao controle remoto e executo o script
$ ssh user@remote_host "./remote_script"
, então, posso ver a saída de stdin e stderr na máquina local. A saída de fd3 , no entanto, ainda vai para o arquivo na máquina remota.
Existe alguma maneira de redirecionar fd3 para ver sua saída na máquina local e ainda ser capaz de distingui-la de stdout ?
Eu já tentei
$ cat remote_script
#!/bin/bash
exec 3>&1
...
$ ssh user@remote_host "./remote_script" 3>local.file.log
mas isso gera apenas um arquivo vazio na máquina local, ou seja, não consigo separar fd3 de stdout
Tags ssh bash linux shell file-descriptors