Peut-être que mon google-foo m'échoue ici ... Je voudrais connecter et télécharger un fichier de vidage mysql via un terminal utilisant SFTP ou SCP sur mon serveur distant à l'aide de mon fichier de configuration ssh. D'après la documentation que j'ai trouvée, je devrais pouvoir faire ceci:
sftp -F db.sql.gz [email protected] /tmp
J'ai aussi fatigué le pseudonyme dans ma config:
sftp -F db.sql.gz myalias /tmp
Quand je fais les deux ci-dessus, je reçois simplement une impression des commandes possibles, -F
étant l'une d'entre elles.
Je peux déjà me connecter via ssh en utilisant le raccourci dans ma configuration locale pour que je sache que cela fonctionne:
ssh myalias
** Remarque: je me connecte à l'aide d'une paire de clés privée/publique, je n'ai donc jamais besoin de saisir de mot de passe. Un mot de passe composé est associé à la paire de clés, mais OS X Keychain en a gardé le souvenir lors de ma première connexion.
... donc je ne suis pas sûr de ce que je fais mal.
Dans le texte d'aide: "... [-F ssh_config] ...
"
Selon ce qui précède, -F
attend un argument: chemin d'accès à un fichier de configuration OpenSSH, ~/.ssh/config
ou similaire. Mais vous lui donnez plutôt un dump SQL compressé.
Puisque le ssh myalias
simple fonctionne déjà, vous n'avez même pas besoin de l'option -F
ici. Juste sftp myalias
se connecterait au serveur.
Cependant, le client OpenSSH sftp
ne prend pas en charge le téléchargement de fichiers comme vous le souhaitez; il ne peut télécharger que des fichiers (en utilisant la syntaxe Host:path
) ou travailler en mode interactif. Pour le téléchargement, vous devez utiliser le mode interactif ...
$ sftp myalias
sftp> cd /tmp
sftp> put db.sql.gz
... ou l'outil scp
:
scp db.sql.gz myalias:/tmp
ou
scp db.sql.gz [email protected]:/tmp
(sftp a un mode de traitement par lots dans lequel il peut lire les commandes d’un fichier en utilisant -b
, mais il est plus simple d’utiliser scp
pour les téléchargements uniques.)
Il existe également d’autres clients SFTP - . Lftp convient à une utilisation interactive, tandis que est curl peut être plus facile à automatiser. Pour les sauvegardes et autres, vous pouvez également utiliser rsync (qui exécute son propre protocole mais toujours dans SSH).