Avec Lftp, NcFTP et ses déclinaisons ncftpput, ncftpget sont des clients FTP en ligne de commandes pour Linux.
ncftp vous permet de vous connecter à un serveur FTP afin de passer les commandes.
ncftpput et ncftpget comme leurs noms l’indiquent permettent d’envoyer et recevoir des fichiers par FTP.
Très pratique par exemple pour mettre en place des sauvegardes par FTP comme le backup storage d’OVH par des scripts automatisés.
Dans ce tutoriel, je vous montre comment utiliser ces commandes NcFTP à travers différents exemples d’utilisation.
Table des matières
Installer ncftp, ncftpput, ncftpget
Pour installer ncftp, par exemple avec APT pour Debian, Ubuntu, ou Mint :
apt install ncftp
Pour les distributions Fedora ou CentOS :
yum install ncftp
NcFTP : exemples d’utilisation du client FTP pour Linux
ncftp est un client FTP en ligne de commandes que l’on utilise dans un terminal.
Ce dernier vous permet donc de vous connecter à n’importe quel serveur FTP pour passer différentes commandes.
La syntaxe :
ncftp -u [nomutilisateur] [nom hôte]
- -u : spécifie le nom d’utilisateur à utiliser. Remplacez [nom d’utilisateur] par l’utilisateur pour vous connecter en tant que
- [nom hôte] : Adresse du serveur FTP auquel se connecter
Puis le mot de passe de connexion FTP est demandé.
Mais on peut spécifier ce dernier dans la commande avec le paramètre -p :
ncftp -u [nomutilisateur] -p [mot de passe] [nom hôte]
Les commandes ncftp
Voici la liste des commandes ncftp.
Certaines ressemblent à celles de Linux que l’on retrouve dans : Liste de toutes les commandes Linux
Elles agissent alors sur le serveur distant.
Leurs équivalents en local commencent par l.
Par exemple : cd et lcd ou rm et lrm.
Commandes | Description |
ascii | Passer le mode de transfert en ASCII |
bgget | Collecter les éléments à télécharger ultérieurement à partir de l’hôte distant |
bgput | Correspond aux commandes get et put expliquées ci-dessous, sauf qu’elles font le travail en arrière-plan |
bgstart | Démarre les transferts en arrière-plan que vous avez demandés, qui exécute simplement une copie du programme ncftpbatch qui est responsable des travaux en arrière-plan |
bookmark | Enregistre les paramètres de session en cours pour une utilisation ultérieure. |
binary | Définit le type de transfert sur binaire brut |
cat | Afficher le contenu d’un fichier distant |
cd | Changer le répertoire courant distant |
chmod | Changer les permissions d’un dossier distant |
close | Vous déconnecte du serveur distant. Le programme le fait pour vous automatiquement en cas de besoin, vous pouvez donc simplement ouvrir d’autres sites ou quitter le programme sans vous soucier de fermer la connexion à la main. |
debug | Cette commande est principalement destinée aux tests internes |
dir | Lister le contenu d’un répertoire distant |
edit | Télécharger dans un fichier temporaire pour modification sur l’hôte local, puis télécharge le fichier modifié vers l’hôte distant. |
get | Copier les fichiers du répertoire de travail actuel sur l’hôte distant vers le répertoire de travail actuel de votre machine |
jobs | Afficher la liste des tâches d’arrière-plan NcFTP en cours d’exécution |
lookup | Permet d’effectuer une résolution DNS |
help | Afficher l’aide |
lcd | Changer le dossier local courant |
lchmod | Changer les autorisations d’un fichier local |
lpage | Afficher un fichier local une page à la fois, avec votre programme $ PAGER préféré. |
lrename | Renommer un fichier local |
lrm | Supprimer un fichier local |
lls | Lister le contenu du répertoire local courant |
ls | Lister le contenu du répertoire distant courant |
lpwd | Affiche le répertoire local courant |
lrmdir | Supprimer un répertoire local |
lmkdir | Exécuter mkdir sur l’hôte local |
mkdir | Exécuter mkdir sur l’hôte distant |
open | Établir une connexion de contrôle FTP à un hôte distant |
page | Parcourt un fichier distant une page à la fois, en utilisant votre programme PAGER. Le fichier n’est pas téléchargé pour lire le contenu |
pdir, pls | Ces commandes sont respectivement équivalentes à dir et ls, seulement elles alimentent leur sortie vers votre pager |
put | Copier les fichiers de l’hôte local vers le répertoire de travail actuel de la machine distante |
pwd | Afficher le répertoire distant courant |
quote | Envoyer une commande de protocole FTP directe au serveur distant |
quit | Quitter le programme NcFTP |
rename | Renommer un fichier distant |
rmdir | Supprimer un répertoire distant |
rhelp | Envoie une demande d’aide au serveur distant. La liste des commandes du protocole FTP est souvent imprimée, et parfois d’autres informations qui sont réellement utiles, comme comment joindre l’administrateur du site |
rm | Supprimer un fichier distant |
set | Configurer certaines variables de programme, qui sont enregistrées entre les exécutions dans le fichier $ HOME / .ncftp / prefs |
show | Afficher des variables |
type | Changer le type de transfert au cours d’une session avec un serveur |
umask | Définir le processus umask sur le serveur distant |
version | Vider les informations sur l’édition particulière du programme que vous utilisez et comment il a été installé sur votre système |
Envoyer des fichiers par FTP
Voici un exemple pour uploader des fichiers sur un serveur FTP avec ncftp.
On se connecte au serveur FTP :
ncftp -u kevin -p CJXXXXX 91.XX.XX.XX
Ensuite on liste le contenu local du répertoire script
lls script
Puis on créé un dossier script sur le serveur distant grâce à la commande mkdir :
mkdir script
Puis on se place dans ce dernier avec la commande cd :
cd script
Enfin on utilise la commande put pour upaloder les fichiers locaux vers le serveur distant :
put script/*
Du côté serveur, on voit bien que le dossier script est présent avec les scripts uploadés.
Télécharger des fichiers par FTP
Dans cet autre exemple, nous souhaitons télécharger des fichiers par FTP avec ncftp.
L’arborescence comporte un dossier images avec un sous-dossier.
La commande ls suivantes le confirme :
ls images
On souhaite télécharger l’intégralité de l’arborescence.
Il faut donc utiliser la commande get de manière récursive grâce au paramètre -R.
get -R images
Le téléchargement des fichiers s’effectue un à un, une fois terminé, la commande lls confirme bien que l’on a récupérer tous les fichiers.
lls images
Supprimer un répertoire
Voici comment supprimer un répertoire sur le serveur FTP avec ncftp.
On revient à la racine :
cd /
Puis on tente de supprimer le répertoire script distant :
rmdir script
Mais une erreur s’affiche car le répertoire n’est pas vide. Normal nous venons d’uploader des fichiers.
rmdir script: server said: script: Le dossier n'est pas vide
rmdir siteweb/: server said: Can't remove directory: Directory not empty
Pour résoudre cela, il faut utiliser le paramètre -r :
rm -r script/
Programmer des téléchargements ou envois de fichiers avec des jobs
bgget ou bgput vous permettent de programmer des téléchargements ou envois de fichiers.
Pour permettre l’enregistrement des mots de passe de connexion :
set save-passwords yes
Ensuite on utilise par exemple la commande bgget pour programmer un téléchargement :
bgget -R images
Pour visualiser la liste des travaux en fond et en attente :
jobs
Enfin pour lancer les travaux :
bgstart
ncftpput, ncftpget : télécharger et envoyer des fichiers depuis un serveur FTP
ncftpget
ncftpget permet de télécharger (download) des fichiers depuis un serveur FTP distant.
Voici un exemple de syntaxe ncftpget :
ncftpget -R -T -v -u [nomutilisateur] -p [mot de passe] [nom hôte] [chemin local] [chemin distant]
- -R : ncftpget de télécharger des fichiers et des répertoires de manière récursive
- -T : ne pas essayer un téléchargement tar (cela n’a jamais fonctionné pour moi et entraîne l’erreur “tar: Cela ne ressemble pas à une archive tar” et “tar: sortie avec un état d’échec en raison d’erreurs précédentes”. Les fichiers réels se téléchargent ensuite simplement bien).
- -v : être verbeux et montrer la progression du téléchargement; vous pouvez l’omettre, mais il peut être utile de voir ce qui se passe
- -u : spécifie le nom d’utilisateur à utiliser. Remplacez [nom d’utilisateur] par l’utilisateur pour vous connecter en tant que
- -p : spécifie le mot de passe de connexion FTP. Remplacez [mot de passe] par le mot de passe de l’utilisateur FTP
- [nom hôte] : Adresse du serveur FTP auquel se connecter
- [chemin local] à l’endroit où vous souhaitez copier les fichiers
- [chemin distant] : chemin où se trouvent les fichiers sur le serveur auquel vous vous connectez
Par exemple nom d’utilisateur est “kevin”, le serveur est 10.1.1.1, le chemin que nous voulons enregistrer localement est /home/kevin et nous voulons télécharger des fichiers depuis l’hôte distant depuis /httpdocs
Voici la commande ncftpget à utiliser :
ncftpget -R -T -v -u chris 10.1.1.1 / home/kevin / httpdocs
ncftpput
ncftpput permet d’envoyer (upload) des fichiers à un serveur FTP distant.
ncftpput -u [nomutilisateur] -p [mot de passe] -R [nom hôte] /cheminlocaluploader /chemindistant
- -u : spécifie le nom d’utilisateur à utiliser. Remplacez [nom d’utilisateur] par l’utilisateur pour vous connecter en tant que
- -p : spécifie le mot de passe de connexion FTP. Remplacez [mot de passe] par le mot de passe de l’utilisateur FTP
- -R : envoie de fichiers en mode récursif
- [nom hôte] : Adresse du serveur FTP auquel se connecter
- [chemin local] les fichiers à uploader vers le serveur FTP
- [chemin distant] : emplacement du serveur FTP où seront copiés les fichiers
Se connecter avec les identifiants FTP dans un fichier texte
Lorsque l’on utilise ncftpput ou ncftpget dans un script pour automatiser la copie de fichiers, on peut ne pas vouloir stocker les identifiants dans le script.
De même, lorsqu’on utilise la commande dans le terminal, celle-ci s’enregistre dans l’historique.
Pour plus de sécurité, on peut stocker les identifiants de connexion FTP dans un fichier texte que l’on appelle avec le paramètre -f.
Par exemple, on créé le fichier /root/ftp.txt avec la syntaxe suivante :
host [nom hôte]
user [nomutilisateur]
pass [mot de passe]
Remplacez [nom hôte], [nomutilisateur] et [mot de passe] par les valeurs de connexion comme dans les exemples précédents.
Puis on applique les permissions afin que le fichier ne soit pas lisibles par d’autres utilisateurs :
chmod 660 /root/ftp.txt
Enfin on utilise la commande ncftpput de cette manière :
ncftpput -R -f /root/ftp.txt /sauvegarde /data/sauvegarde/*
Automatiser les téléchargements ou envoies avec les jobs
ncftpget -bb -f /root/ftp.txt -R [nom hôte] /cheminlocaluploader /chemindistant
ncftpbatch -d
Liens
- Fonctionnement du FTP pour partager ses fichiers
- Créer et se connecter en FTP avec un lecteur réseau sur Windows
- Le mode actif et passif en FTP : les différences, fonctionnement, lequel choisir ?
- FileZilla : transférer des fichiers par FTP pour Windows et Ubuntu
- FileZilla Server : configurer un serveur FTP sur Windows
- FileZilla : transférer des fichiers de Windows à Linux en SFTP
- ncftp, ncftpput, ncftpget : exemples d’utilisation du client FTP pour Linux
- ProFTPD : configurer un serveur FTP sur Debian 10