Se o shell de login do usuário remoto ( user2 on server2 ) for bash , lembre-se de que bash lê e interpreta ~/.bashrc (e possivelmente /etc/bash.bashrc ou o equivalente no sistema remoto) quando chamado de ssh , mesmo quando não interativo (como quando ele apenas interpreta /bin/cat > user2@server2:/......./test.sql.gz que você fornece).
Certifique-se de que as coisas em ~/.bashrc não façam coisas como stty ou mesg (o mesg de sysvinit-utils como encontrado em muitas distribuições do Linux é conhecido por produzir exatamente a mesma mensagem que você pode ver executando : | mesg n ), ou somente depois de ter verificado que stdin é um terminal [ -t 0 ] e que o o shell é interativo ( case $- in (*i*) ...;; esac ).
Se o shell de login do usuário remoto for csh ou tcsh , observe os .cshrc e .tcshrc e zsh at ~/.zshenv , que são interpretados por cada shell, incluindo os não interativos independentemente de serem chamados de ssh ou não (mas, como tal, eles normalmente não farão coisas com tty incondicionalmente).
Observe que isso não fará com que seu comando falhe, apenas que a falsa mensagem seja exibida.
O que faria com que o comando falhasse é:
/bin/cat > user2@server2:/......./test.sql.gz
Quando não faz muito sentido, a menos que exista um diretório chamado user2@server2: no diretório inicial de user2 on server2 .
Isso é provavelmente o que causa o erro:
: No such file or directory
O fato de que o "arquivo ou diretório" está reclamando parece estar "vazio" sugere que há um caractere de retorno de carro escondido em algum lugar na linha de comando.
O que você quer é /bin/cat > /path/to/output/file/on/server2/test.sql.gz e o diretório /path/to/output/file/on/server2 deve existir de antemão.
Você também pode querer remover o -v e o ~/.bashrc temporariamente, já que estamos vendo mensagens de ssh , dos comandos executados no seu ~/.bashrc , possivelmente pelo shell remoto quando interpreta essa linha de comando cat ... , por cat e pelo comando mysqldump , o que dificulta ver o que é o quê.