ncftp, ncftpput, ncftpget : exemples d’utilisation du client FTP pour Linux

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.

ncftp, ncftpput, ncftpget : exemples d'utilisation du client FTP pour Linux

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.

CommandesDescription
asciiPasser le mode de transfert en ASCII
bggetCollecter les éléments à télécharger ultérieurement à partir de l'hôte distant
bgputCorrespond aux commandes get et put expliquées ci-dessous, sauf qu'elles font le travail en arrière-plan
bgstartDé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
bookmarkEnregistre les paramètres de session en cours pour une utilisation ultérieure.
binaryDéfinit le type de transfert sur binaire brut
catAfficher le contenu d'un fichier distant
cdChanger le répertoire courant distant
chmodChanger les permissions d'un dossier distant
closeVous 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.
debugCette commande est principalement destinée aux tests internes
dirLister le contenu d'un répertoire distant
editTé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.
getCopier les fichiers du répertoire de travail actuel sur l'hôte distant vers le répertoire de travail actuel de votre machine
jobsAfficher la liste des tâches d'arrière-plan NcFTP en cours d'exécution
lookupPermet d'effectuer une résolution DNS
helpAfficher l'aide
lcdChanger le dossier local courant
lchmodChanger les autorisations d'un fichier local
lpageAfficher un fichier local une page à la fois, avec votre programme $ PAGER préféré.
lrenameRenommer un fichier local
lrmSupprimer un fichier local
llsLister le contenu du répertoire local courant
lsLister le contenu du répertoire distant courant
lpwdAffiche le répertoire local courant
lrmdirSupprimer un répertoire local
lmkdirExécuter mkdir sur l'hôte local
mkdirExécuter mkdir sur l'hôte distant
openÉtablir une connexion de contrôle FTP à un hôte distant
pageParcourt 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, plsCes commandes sont respectivement équivalentes à dir et ls, seulement elles alimentent leur sortie vers votre pager
putCopier les fichiers de l'hôte local vers le répertoire de travail actuel de la machine distante
pwdAfficher le répertoire distant courant
quoteEnvoyer une commande de protocole FTP directe au serveur distant
quitQuitter le programme NcFTP
renameRenommer un fichier distant
rmdirSupprimer un répertoire distant
rhelpEnvoie 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
rmSupprimer un fichier distant
setConfigurer certaines variables de programme, qui sont enregistrées entre les exécutions dans le fichier $ HOME / .ncftp / prefs
showAfficher des variables
typeChanger le type de transfert au cours d'une session avec un serveur
umaskDéfinir le processus umask sur le serveur distant
versionVider les informations sur l'édition particulière du programme que vous utilisez et comment il a été installé sur votre système
Liste des commandes ncftp

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/*
Envoyer des fichiers par FTP avec ncftp

Du côté serveur, on voit bien que le dossier script est présent avec les scripts uploadés.

Envoyer des fichiers par FTP avec ncftp

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
Télécharger des fichiers par FTP avec ncftp

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
Télécharger des fichiers par FTP avec ncftp

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
rmdir server said: script: Le dossier n'est pas vide

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

Vous avez trouvé cet article utile et interressant, n'hésitez pas à le partager...
bouton facebookbouton twitterbouton whatapps
Cet article est sous licence Creative Commons BY-NC-SA.
Vous êtes autorisé à partager et modifier cet article, à condition de créditer le site ainsi que la licence, d'utiliser la même licence si vous modifiez l'oeuvre et de ne pas en faire d'utilisation commerciale.

Trouver la solution sur le forum d'aide

Vous êtes arrivé au terme de l'article ncftp, ncftpput, ncftpget : exemples d’utilisation du client FTP pour Linux mais vous n'avez pas trouvé la solution à votre problème...

Suivez ces articles du forum pour trouver une réponse :

Sinon créez votre propre demande pour obtenir de l'aide gratuite.
Plus de détails : Comment obtenir de l'aide sur le forum