Ok, je vais décrire la cinématique des tes deux commandes.
SSH est lancé en tant que processus sur ton portable. Il se connecte à ton serveur mais ne lance pas d’invite de commande, car un nom de programme lui a été passé en argument. A la place, une fois qu’il est connecté, il lance ta commande "mysqldump -u root -p nomdemabase"
SSH balance ensuite sur sa sortie standard tout le résultat que mysqldump lui lance, c’est à dire le contenu de ta base en requête SQL.
Enfin, tu as une redirection de cette sortie standard vers un fichier. Tout ce qui sort va finalement atterrir dans le fichier /home/monidentifiant/Bureau/nomdemabase.sql de ton portable.
mysqldump -u root -p nomdemabase > ssh@ipdemonportable /home/monidentifiant/Documents/Backups_forum/sql/nomdemabase.sql
Le processus mysqldump est lancé depuis ton serveur. Le chevron de redirection lui demande d’envoyer sa sortie standard vers le fichier “ssh@ipdemonportable”. En théorie tu devrais donc avoir un fichier “ssh@ipdemonportable” qui va être créé dans ton répertoire courant et qui est censé contenir ton dump mysql… C’est pas du tout ce que tu veux mais c’est ce que tu lui demandes.
Mais cela ne se produit même pas, car il y a une deuxième erreur : une fois que la syntaxe du chevron a été résolue, la chaine de caractère “/home/monidentifiant/Documents/Backups_forum/sql/nomdemabase.sql” est passée en tant que second argument à ta commande mysqldump. D’où ton message d’erreur "mysqldump: Couldn’t find table: “/home/monidentifiant/Documents/Backups_forum/sql/nomdemabase.sql”
Voyons ensuite ma commande :
mysqldump est lancé sur ton serveur.
Le SQL produit sur la sortie standard devient en fait l’entrée standard de SSH, grâce à la magie de l’opérateur | (pipe).
SSH se connecte à ton serveur mais ne lance pas de shell car un programme a été passé en argument. De plus SSH est malin, et a été conçu de façon à transmettre son entrée standard sur le serveur distant.
Du coup, SSH reçoit le dump SQL et le transmet à la commande ‘cat > /home/monidentifiant/Documents/Backups_forum/sql/nomdemabase.sql’ qu’il exécute sur ton portable.
Le programme ‘cat’, sans argument, n’est qu’un répéteur (il recopie ce qui vient de l’entrée standard sur la sortie standard). Et comme on lui donne un chevron de sortie vers un fichier, il envoie tout au final dans ton fichier de destination.