Montare il proprio sito ftp in locale con bash

Il mio editor di testo preferito è VIM.
Oggi mi stavo domandando: “Come posso utilizzare VIM per modificare i file di testo presenti sul mio sito ftp senza dover ogni volta scaricarli in locale e poi re-inviarli online tramite un client FTP.”
Potrei utilizzare vim indicandogli il file ftp, ma l’idea non mi ispirava molto così ho pensato che in Linux posso montare pressoché qualsiasi directory all’interno dell’albero delle directory del mio sistema e di conseguenza muovermi all’interno della cartella montata come se fosse una cartella locale normalissima.

Ma come fare con bash?
Semplicissimo: esiste curlftpfs.

Sulla mia Fedora non era installato, per cui prima ho dovuto dare questo semplice comando:

# yum install curlftpfs[Invio]

Il grosso del lavoro è fatto, prima però è meglio dare un’occhiata a un po’ di documentazione per capire meglio come funziona e sul sito pluto.it ho trovato questa pagina molto interessante.

L’utilizzo di cutlftpfs è molto semplice:

$ curlftpfs ftp://sitoftp.com /cartella_dove_si_vuole_montare[Invio]

Per smontare poi il sito si può fare:

$ fusermount -u /cartella_dove_si_vuole_montare[Invio]

L’utente root può anche utilizzare umount.

Dato che per avere l’accesso al mio spazio ftp devo fornire nome utente e password, scrivere le credenziali di accesso all’interno della riga di comando(fare riferimento alla documentazione che ho detto prima o alla pagina di man) non è una cosa intelligente per cui ho preferito creare un file di configurazione, all’interno della cartella del mio utente che deve usare curlftpfs, chiamato .netrc:

$ vim ~/.netrc

Il file contiene quanto segue (ovviamente sono parametri di fantasia 😉 ):

machine ftp.sitoftp.com  
login pippo
password pluto

A questo punto per sicurezza restringo i permessi al file creato:

$ chmod 600 ~/.netrc

E ora per montare, lavorare sui file remoti, smontare il proprio sito ftp come se fosse una cartella locale è semplicissimo:

$ mkdir cartella_ftp
$ curlftpfs ftp.sitoftp.com/eventuale_percorso cartella_ftp
$ ... [tutte le operazioni che preferisco]...
$ fusermount -u cartella_ftp
$ rmdir cartella_ftp

Si può automatizzare il processo introducendo delle direttive nel file fstab ma per queste cose rimando alla documentazione di pluto.it, alle pagine di man e al sito web del progetto.

Questa voce è stata pubblicata in Bash e contrassegnata con , , , , . Contrassegna il permalink.

2 risposte a Montare il proprio sito ftp in locale con bash

  1. Marco scrive:

    Interessante, non conoscevo curlftpfs, ma i file vengono sincronizzati runtime?

  2. Non parlerei di sincronizzazione…Non ho trovato uno schema grafico che spieghi bene il funzionamento di fuse e di curlftpfs. In linea molto semplice visualizzerei il funzionamento in questo modo: si crea un filesystem fuse che tramite curl si interfaccia via ftp al server esterno. Tutti i comandi e le richieste date ad un filesystem vengono interpretate da curlftpfs che le traduce in richieste ftp immediate. Per cui se scrivo su un file, curlftpfs direttamente scrive (carica via curl) il file in remoto.
    Dunque, non mi sembra faccia una copia locale e poi la carica, non fa una sincronizzazione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *