Quando você se conecta a outro host, o SSH executa o comando especificado no lado do servidor (se não houver nenhum dado, ele inicia um shell), encaminhando todos os fluxos stdin / stdout / stderr. O comando ssh
termina no >
. Isso significa que a saída do comando mysql é redirecionada para o arquivo dbdump.dmp
no lado do cliente . Então, ainda no lado do cliente, um arquivo tar é criado a partir desse arquivo.
Se você colocar toda a cadeia de comandos entre aspas, como a proposta por Dom, ela será executada completamente no lado remoto, assim você terá os arquivos em seu servidor.
Em teoria, a senha também deve funcionar (já que o fluxo de stdin não é redirecionado, mas acabou de ser passado), mas isso não aconteceu aqui.
Você pode colocar a senha no .my.cnf
( se você quiser segurança extra, crie um usuário extra apenas para o backup). Você também pode usar o login de chave pública para essa conta, para que funcione completamente sem a sua interação. / p>
BTW: Por que você cria um arquivo TAR do despejo? Se você só precisa da compressão, gzip
ou algo assim é totalmente suficiente.