GNU/Linux >> Tutoriels Linux >  >> Linux

Comment transférer des fichiers entre serveurs sous Linux à l'aide de SCP et FTP

Le transfert de fichiers entre machines est une tâche opérationnelle très courante que vous effectuerez tout le temps en tant que développeur.

Linux fournit un certain nombre d'utilitaires pour transférer des fichiers. Dans ce didacticiel, nous aborderons FTP et SCP . De nombreux scripts automatisés déploient également FTP ou SCP pour déplacer des fichiers.

Qu'est-ce que FTP ?

FTP est un protocole réseau utilisé pour échanger des fichiers sur le réseau. Il utilise le port 21. FTP vous permet d'accéder à un système distant pour échanger des fichiers en utilisant le ftp commande.

Syntaxe FTP

La syntaxe FTP est la suivante :

ftp host

Ici, host peut être le nom d'hôte ou l'adresse IP de l'hôte distant.

Commandes FTP

Les commandes FTP sont similaires aux commandes Linux. Nous en discuterons quelques-uns.

Commande Utilisation
ouvrir Ouvre une connexion à distance avec un autre ordinateur.
obtenir Copie un fichier du système distant vers le système local.
mettre Copie un fichier du système local vers un répertoire sur le système distant.
gestion Transfère plusieurs fichiers du système distant vers le répertoire actuel du système local.
mput Transfère plusieurs fichiers du système local vers un répertoire sur le système distant.
au revoir/quitter Prépare la sortie de l'environnement FTP.
fermer Mettre fin à la connexion FTP.
ascii Active le mode de transfert de fichiers vers ASCII
binaire Active le mode de transfert de fichiers vers binaire.

Comment transférer des fichiers via FTP

FTP propose deux modes de transfert :ASCII et binaire.

  1. ASCII signifie American Standard Code for Information Interchange . Il est utilisé pour transférer des fichiers simples tels que des fichiers texte.
  2. Mode binaire  :Le mode binaire est utilisé pour transférer des fichiers non textuels tels que des images.

Le mode de transfert par défaut est ASCII.

Étape 1 – Se connecter au FTP

Dans l'exemple ci-dessous, hostA est l'hôte distant. Vous serez invité à entrer un nom d'utilisateur et un mot de passe.

$ ftp hostA
Connected to hostA.
220 hostA FTP server ready.
Name (hostA:user): user
331 Password required for user.
Password: password
230 User user logged in.
Remote system type is LINUX.

Une fois la connexion établie, vous remarquerez le ftp> symbole au début. Nous pouvons maintenant exécuter les commandes FTP.

Étape 2 – Choisissez le mode de transfert de fichiers

Vous pouvez choisir le mode (binaire ou ASCII) en fonction de votre type de fichier.

ftp> ascii
200 Type set to A.

Étape 3 – Transférer des fichiers

Nous utilisons le get commande pour transférer le fichier sample.txt du serveur FTP distant à la machine locale.

ftp> get sample.txt
200 PORT command successful.
150 Opening ASCII mode data connection for sample.txt (22 bytes).
226 Transfer complete.
local: sample.txt remote: sample.txt
22 bytes received in 0.012 seconds (1.54 Kbytes/s)

Étape 4. Terminer la session

ftp> bye
221-You have transferred 22 bytes in 1 files.
221-Total traffic for this session was 126 bytes in 2 transfers. 221-Thank you for using the FTP service on hostA.
221 Goodbye.

Comment transférer plusieurs fichiers via FTP

Pour transférer des fichiers en masse, il existe deux commandes :mget et mput .

Vous utilisez mget pour télécharger les fichiers, alors que vous utilisez mput pour télécharger les fichiers.

ftp> mget sample_file.1 sample_file.2
ftp> mput sample_file.1 sample_file.2

Toutes les étapes que nous venons d'apprendre peuvent être placées dans un fichier exécutable et être programmées. Vous pouvez trouver le code pour l'automatisation ici.

Qu'est-ce que SCP ?

SCP signifie Copie sécurisée. Il utilise SSH et le port 22. Les données transférées via SCP sont cryptées et les renifleurs ne peuvent pas y accéder. Cela rend SCP très sécurisé.

Vous pouvez utiliser SCP pour :

  • Transférer des fichiers d'une machine locale vers un hôte distant.
  • Transférer des fichiers d'un hôte distant vers une machine locale.

Syntaxe SCP

Explorons la syntaxe de SCP.

scp [FLAG] [user@]SOURCE_HOST:]/path/to/file1 [user@]DESTINATION_HOST:]/path/to/file2
  • [FLAG] spécifie les options qui peuvent être données à SCP. Voici quelques détails sur les drapeaux :
Signal Description
-r Pour copier récursivement des répertoires.
-q Utilisé pour masquer la jauge de progression et toute autre information autre que les erreurs.
-C Utilisé pour compresser les données lors de leur envoi vers leur destination.
-P Spécifie le port SSH de destination.
-p Conserve les heures d'accès aux fichiers.
  • [user@]SOURCE_HOST est la machine source.
  • [user@]DESTINATION_HOST:] est la machine de destination.

Remarque  :Pour transférer des fichiers via SCP, les informations d'identification doivent être connues et l'utilisateur doit avoir les autorisations d'écriture .

Comment transférer des fichiers d'une machine locale vers un hôte distant via SCP

Pour transférer des fichiers vers un hôte distant, utilisez la commande ci-dessous :

scp source_file.txt [email protected]:/path/to/remote/directory

Dans la commande ci-dessus, source_file.txt est le fichier à copier. Remote_username est le nom d'utilisateur de l'hôte distant 10.13.13.11 . Après : le chemin de destination est spécifié.

Exemple de sortie :

[email protected]'s password:
source_file.txt                             100%    0     0.0KB/s   00:00

Le fichier source_file.txt sera désormais placé dans /path/to/remote/directory .

Pour copier des répertoires, utilisez le -r drapeau comme illustré ci-dessous.

scp -r /local/directory [email protected]:/path/to/remote/directory

Comment transférer des fichiers d'un hôte distant vers une machine locale via SCP

Pour transférer des fichiers d'un hôte distant vers une machine locale, utilisez la commande ci-dessous :

scp [email protected]:/remote/source_file.txt /path/to/local/directory
Soyez très prudent lors du transfert de fichiers car SCP écrase les fichiers déjà existants.

Conclusion

Dans ce didacticiel, vous avez appris à transférer des fichiers et des répertoires à l'aide de FTP et SCP via la ligne de commande.

Lorsqu'elles sont automatisées, ces commandes remplissent des fonctions encore plus importantes dans l'entreposage de données, l'ETL (extraire, transformer, charger), la création de rapports, l'archivage et le traitement de fichiers en masse. Essayez ces commandes. Connectons-nous sur Twitter.


Linux
  1. Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv

  2. Transférer en toute sécurité des fichiers et des dossiers entre ordinateurs à l'aide de Croc

  3. Comment copier en toute sécurité des fichiers entre des hôtes Linux à l'aide de SCP et SFTP

  4. Comment utiliser FTP sous Linux pour transférer des fichiers

  5. Comment transférer des fichiers entre Linux et Android de manière rapide et fiable ?

Comment partager et transférer des fichiers entre Linux et Windows

Comment sauvegarder et restaurer des fichiers à l'aide de BorgBackup sous Linux

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

Comment transférer des fichiers entre Dropbox et Google Drive avec Rclone sous Linux

4 façons de transférer des fichiers et des répertoires sous Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux