web-dev-qa-db-fra.com

Comment télécharger un fichier à partir de la ligne de commande avec FTP ou SSH?

Je n'ai jamais fait cela auparavant et je crée un script bash pour le faire pour moi. Je vais aussi me connecter via ssh pour faire certaines choses (que je sais déjà faire). Alors peut-être qu'il y a un moyen de télécharger des fichiers via ssh afin que je puisse tout faire en une seule connexion?

Comment puis-je faire ceci?

#!/bin/sh

cd ./files-to-upload
#upload the files
29
Andrew

Vous pouvez utiliser scp pour copier sur un ordinateur distant.

scp <file to upload> <username>@<hostname>:<destination path>
55
tangens

Vous recherchez probablement SCP ou similaire.

#!/bin/bash

cd ./files-to-upload
scp * user@Host:/path/to/upload/files/to

bien sûr, cela doit être ajusté à votre goût. Remplacez utilisateur @ Host par vos informations réelles. Vous serez invité à entrer un mot de passe pour le téléchargement.

6
John T

Si vous devez vraiment utiliser ssh (au lieu de scp), vous pouvez faire:

for filename in *; do
  cat $filename | ssh user@Host "cd /path/to/upload/files/to; cat - > $filename"
done

mais scp régulier (comme tangens suggestion) est le meilleur.

4
Jimmy Hedman

scp est la meilleure réponse car il serait crypté sur SSH.

Cependant, si vous voulez le faire sur un ftp standard, regardez ncftpput. Il est spécialement conçu pour télécharger un fichier:

NAME ncftpput - programme de transfert de fichiers Internet pour les scripts

SYNOPSIS ncftpput [options] remote-Host répertoire-distant fichiers-locaux ...

1
DuPie

curl est un bon programme qui gère plusieurs protocoles.

0
Joe Internet

Pour ec2 exemple, vous devez également transmettre le fichier .pem,

$scp -i ~/Desktop/Amazon.pem ~/Desktop/file.Zip  [email protected]:~/data/
0
Elavarasan

Lorsque vous utilisez la commande scp (copie sécurisée), elle se connecte au client et si vous n'avez pas déjà une empreinte digitale enregistrée pour le périphérique hôte, vous demander le mot de passe de l'hôte, sinon il devrait se connecter automatiquement à l'hôte, je crois.

0
David