Introduzione

FTP (File Transfer Protocol) è un protocollo di rete standard utilizzato per trasferire file da e verso una rete remota.

In questo tutorial, ti mostreremo come usare il comando ftp su Linux attraverso esempi pratici.

Nella maggior parte dei casi, verrà utilizzato un client FTP desktop per connettersi al server remoto e scaricare o caricare file. Tuttavia, il comando ftp è utile quando si lavora su un server senza GUI e si desidera trasferire file su FTP da o verso un server remoto.

Prerequisiti

Quando si trasferiscono dati su ftp, la connessione non è crittografata. Per un trasferimento sicuro dei dati, utilizzare SCP .

Per poter trasferire i file è necessario disporre almeno delle autorizzazioni di lettura sul file di origine e delle autorizzazioni di scrittura sul sistema di destinazione.

Quando si trasferiscono file di grandi dimensioni, si consiglia di eseguire il comando sftp all'interno di una sessione di screen o di  tmux.

La directory da cui si esegue il comando ftp è la directory di lavoro locale.

Stabilire una connessione FTP

Per aprire una connessione ftp a un sistema remoto, utilizzare il comando ftp seguito dall'indirizzo IP o dal nome di dominio del server remoto:

ftp 192.168.43.55

Se viene stabilita la connessione, verrà visualizzato un messaggio di conferma e verrà richiesto di inserire il nome utente FTP, in questo esempio il nome utente FTP è noviello:

220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 21:35. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (192.168.43.55:localuser): noviello

È possibile che venga visualizzato un messaggio di conferma diverso a seconda del servizio FTP in esecuzione sul server remoto.

Una volta inserito il nome utente ti verrà chiesto di digitare la password:

Password:

Se la password è corretta, il server remoto visualizzerà un messaggio di conferma e il prompt cambierà in ftp>, in questo modo:

230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Se il server FTP a cui si accede accetta account ftp anonimi e si desidera accedere come utente anonimo, utilizzare anonymous come nome utente e il proprio indirizzo e-mail come password.

Download di file con il comando FTP

Una volta effettuato l'accesso, la directory di lavoro corrente è la home directory dell'utente remoto.

Quando si scaricano file con il comando ftp, i file verranno scaricati nella directory da cui è stato digitato il comando ftp.

Se si desidera scaricare i file in un'altra directory locale, passare ad esso utilizzando il comando lcd.

Diciamo che vogliamo scaricare i file nella directory ~/ftp_downloads:

lcd ~/ftp_downloads

Per scaricare un singolo file dal server remoto, utilizzare il comando get Ad esempio, per scaricare un file denominato backup.zip utilizzare il comando seguente:

get backup.zip

L'output dovrebbe assomigliare a questo:

200 PORT command successful
150-Connecting to port 60609
150 6516.9 kbytes to download
226-File successfully transferred
226 2.356 seconds (measured here), 2.70 Mbytes per second
6673256 bytes received in 2.55 seconds (2.49 Mbytes/s)

Per scaricare più file contemporaneamente, utilizzare il mgetcomando È possibile fornire un elenco di singoli nomi di file o utilizzare caratteri jolly.

mget backup1.zip backup2.zip

Quando si scaricano più file, verrà richiesta la conferma per ciascun file.

mget backup1.zip? y
200 PORT command successful
150 Connecting to port 52231
226-File successfully transferred
226 0.000 seconds (measured here), 31.51 Kbytes per second
14 bytes received in 0.00058 seconds (23.6 kbytes/s)
mget backup2.zip? y
200 PORT command successful
150-Connecting to port 59179
150 7.2 kbytes to download
226-File successfully transferred
226 0.000 seconds (measured here), 16.68 Mbytes per second
7415 bytes received in 0.011 seconds (661 kbytes/s)

Una volta terminato il download dei file dal server FTP remoto, chiudere la connessione con bye o quit.

quit
221-Goodbye. You uploaded 0 and downloaded 6544 kbytes.
221 Logout.

Caricamento dei file con il comando FTP

Per caricare un file da una directory locale su un server FTP remoto utilizzare il comandoput:

put image.jpg

L'output dovrebbe assomigliare a questo:

200 PORT command successful
150 Connecting to port 34583
226-File successfully transferred
226 0.849 seconds (measured here), 111.48 Kbytes per second
96936 bytes sent in 0.421 seconds (225 kbytes/s)

Se si desidera caricare un file che non si trova nella directory di lavoro corrente, utilizzare il percorso assoluto del file.

Per caricare più file da una directory locale su un server FTP remoto utilizzare il comando mput:

mput image1.jpg image2.jpg
mput image1.jpg? y
200 PORT command successful
150 Connecting to port 41075
226-File successfully transferred
226 1.439 seconds (measured here), 102.89 Kbytes per second
151586 bytes sent in 1.07 seconds (138 kbytes/s)
mput image2.jpg? y
200 PORT command successful
150 Connecting to port 40759
226-File successfully transferred
226 1.727 seconds (measured here), 111.75 Kbytes per second
197565 bytes sent in 1.39 seconds (138 kbytes/s)

Quando si caricano più file, verrà richiesta la conferma di ciascun file che si desidera caricare.

Una volta terminato il caricamento dei file sul server FTP remoto, chiudere la connessione con bye o quit.

Comandi FTP comuni

Molti comandi FTP sono simili o identici ai comandi da digitare nel prompt della shell Linux.

Di seguito sono riportati alcuni dei comandi FTP più comuni

  • help oppure ? - elenca tutti i comandi FTP disponibili.
  • cd - cambia directory sul computer remoto.
  • lcd - cambia directory sul computer locale.
  • ls - elenca i nomi dei file e delle directory nella directory remota corrente.
  • mkdir - crea una nuova directory nella directory remota corrente.
  • pwd - stampa la directory di lavoro corrente sul computer remoto.
  • delete - rimuove un file nella directory remota corrente.
  • rmdir- rimuovere una directory nella directory remota corrente.
  • get - copia un file da remoto al computer locale.
  • mget - copia più file da remoto al computer locale.
  • put - copia un file da remoto al computer remoto.
  • mput - copia un file dal locale al computer remoto.

Conclusione

In questo tutorial, hai imparato come utilizzare il comando ftp per scaricare e caricare file sul tuo server FTP remoto.