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.
- ASCII signifie American Standard Code for Information Interchange . Il est utilisé pour transférer des fichiers simples tels que des fichiers texte.
- 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.