Articles - Linux

Transférer des fichiers

L'objectif de cet article est de vous montrer comment télécharger, transfert des fichiers, synchroniser deux répertoires à partir de linux.

wget : téléchargement de fichiers



Il suffit d'indiquer l’adresse HTTP ou FTP d'un fichier à télécharger :
Code BASH :
wget http://www.ubuntu-fr.org/telechargement?action=dl

Pour arrêter le téléchargement : Ctrl + c
Pour reprendre un téléchargement arrêté, utiliser l'option -c :
Code BASH :
wget -c http://www.ubuntu-fr.org/telechargement?action=dl


Lancer un téléchargement en tache de fond :
- Utiliser la technique nohup qui s'applique à toutes les commandes
- Utiliser l'option --background

Code BASH :
wget --background -c http://www.ubuntu-fr.org/telechargement?action=dl

wget propose pas mal d'options. Faire man wget pour voir les options.

scp : copier des fichiers à travers le réseau



scp = secure copy
Code BASH :
scp fichier_origine copie_destination

Copier un fichier de votre ordinateur vers un autre :
Code BASH :
scp image.png akassambara@85.123.10.201:~/images/

Remplacer l'IP par le nom d'hôte


Copier plusieurs fichiers de votre ordinateur vers un autre :

- Utiliser l'option -r (recursif) en précisant le dossier :
Code BASH :
scp -r mon_dossier akassambara@85.123.10.201:~/images/



Copier un fichier d'un autre ordinateur vers le vôtre:
Code BASH :
 
scp akassambara@85.123.10.201:image.png copie_image_sur_mon_pc.png
#Copier le fichier sans  changer le nom :
scp akassambara21@85.123.10.201:image.png 
 


Si le serveur SSH auquel vous essayez de vous connecter n'est pas sur le port standard (22), il faudra indiquer le numéro du port avec l'option -P :
Code BASH :
scp -P 16296 akassambara@85.123.10.201:image.png .



ftp & sftp : transférer des fichiers


Le FTP (File Transfer Protocol) est un protocole permettant d'échanger des fichiers sur le réseau. La connexion peut se faire en mode anonyme (site public) ou authentifié (site privé)
Code BASH :
 
#Connexion au serveur debian
ftp ftp.debian.org
ls #Afficher le contenu du repertoire 
pwd #chemin du répertoire actuel
cd # Changer de répertoire
 


Transfert des fichiers



put : envoie un fichier vers le server
get : télécharge un fichier depuis le serveur.

Vous pouvez par exemple récupérer le fichier README :
Code BASH :
ftp get README 


Le fichier est téléchargé dans le dossier dans lequel vous vous trouviez sur votre ordinateur.

Code BASH :
 ftp> !pwd # Pour savoir dans quel dossier vous êtes chez vous


Pour quitter la session : Ctrl + D

sftp : Transfert sécurisé



Requiert un mot de passe

Code BASH :
sftp login@ip



Si votre serveur SSH fonctionne sur un autre port, vous devrez le préciser comme ceci : sftp -oPort=27401 login@serveur.


rsync : synchroniser des fichiers pour une sauvegarde



rsync permet d'effectuer une synchronisation entre deux répertoires, que ce soit sur le même PC ou entre deux ordinateurs reliés en réseau.

Code BASH :
C'est une sorte de scp intelligent : il compare et analyse les différences entre deux dossiers puis copie uniquement les changements.


Synchroniser deux dossiers du même ordinateur



Le contenu du dossier images est sauvegardé dans le dossier backups:
Code BASH :
 
rsync -arv --delete Images/ backups/
 



-a : conserve toutes les informations sur les fichiers, comme les droits (chmod), la date de modification, etc. ;
-r : sauvegarde aussi tous les sous-dossiers qui se trouvent dans le dossier à sauvegarder ;
-v : mode verbeux, affiche des informations détaillées sur la copie en cours.
--delete : pour que le contenu soit strictement identique. Lorsqu'un fichier a été supprimer dans le répertoire d'origine, il le sera également dans le répertoire de sauvegarde.


Pour mettre les fichiers supprimer dans "un dossier corbeille" au cas ou :
Ajouter l'option : --backup --backup-dir=~/kass/backups_supprimes

Code BASH :
 
 rsync -arv --delete --backup --backup-dir=~/kass/backups_supprimes Images/ backups/
 


Indiquer le chemin absolu du dossier corbeille pour éviter des problèmes

Sauvegarder sur un autre ordinateur


Code BASH :
 
rsync -arv --delete --backup --backup-dir=/home/kassambara/fichiers_supprimes Images/ mateo21@IP_du_serveur:mes_backups/
 


Si votre serveur SSH écoute sur un autre port que celui par défaut, il faudra rajouter -e "ssh -p port" :

Code BASH :
 
rsync -arv --delete --backup --backup-dir=/home/kass/fichiers_supprimes Images/ kass@IP_du_serveur:mes_backups/ -e "ssh -p 12473"