Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

Rimuovere automaticamente i files scaricati da un server FTP —

Poco tempo fa ho riscritto il server FTP aziendale, ma una volta di più mi sono reso conto che in breve tempo è diventato un deposito di roba non assolutamente gestito, non mi pare ci voglia una scienza a tenere pulito un server che metti a disposizione dei clienti/fornitori, basta la volontà di farlo ma evidentemente non è così.
Potevo semplicemente fare una pulita ogni tot giorni, ma dato che mi metto sempre nei panni dell’utente mi son detto che potevo avere mille cose da fare prima di scaricare quel documento che avrei usato tra 3 mesi ad esempio, e quindi se indiscriminatamente ogni domenica per fare un esempio la directory download viene svuotata io corro il rischio di non aver scaricato il mio file e di dover dire per favore rimettimelo su a disposizione, non facendoci certo una bella figura.
Quindi mi son messo a cercare per bene come cancellare solo i files scaricati effettivamente.
Tutto quello che c’è da sapere lo si trova nel file di log di proftpd che si chiama xferlog e si trova in /var/log/proftpd.
un esempio banale di xferlog è questo:

Fri Apr 20 07:44:50 2018 2 sangiorgio.oceano.lan 1000878 /home/archivio/download/slide-sd-20-170621140832.pdf b _ i r manager ftp 0 * c
Fri Apr 20 07:45:05 2018 3 sangiorgio.oceano.lan 815930 /home/archivio/download/slide-sd-20-170621140711.pdf b _ i r manager ftp 0 * c
Fri Apr 20 07:45:08 2018 5 sangiorgio.oceano.lan 1370869 /home/archivio/download/slide-sd-20-170621140342.pdf b _ i r manager ftp 0 * c
Fri Apr 20 07:47:21 2018 70 sangiorgio.oceano.lan 26815143 /home/archivio/upload/debian-handbook.pdf b _ i r archivio ftp 0 * c
Fri Apr 20 08:06:39 2018 3 sangiorgio.oceano.lan 815930 /home/archivio/download/slide-sd-20-170621140711.pdf b _ o r archivio ftp 0 * c
Fri Apr 20 08:06:42 2018 6 sangiorgio.oceano.lan 1370869 /home/archivio/download/slide-sd-20-170621140342.pdf b _ o r archivio ftp 0 * c
Fri Apr 20 08:06:44 2018 4 sangiorgio.oceano.lan 1000878 /home/archivio/download/slide-sd-20-170621140832.pdf b _ o r archivio ftp 0 * c

Cercando in rete ho trovato questa informazione, i tre caratteri che seguono il nome del file indicano lo stato del file stesso, quindi:
in caso di formato ASCII
a _ i (uploaded)
a _ o (downloaded)
a _ d (deleted)
in caso di formato binario
b _ i (uploaded)
b _ o (downloaded)
b _ d (deleted)
Quindi se io parso il log ed estraggo le linee con b _ o e quindi le passo a un qualcosa che provvede ad eliminare i miei files scaricati dalla directory download sono a posto.

Quindi:

cd /usr/local/bin

vim remdow.sh (remove downloaded primo premio per la fantasia…)
#! /bin/bash
cd /home/archivio/dowload
grep -w “b _ o r archivio ftp 0 *” /var/log/proftpd/xferlog | cut -d ‘ ‘ -f 9 | xargs rm -f
exit 0
Rendo eseguibile il file e lo metto in crontab una volta a settimana et voilà il gioco è fatto.

Grazie a ERLUG per la dritta su come passare la lista dei file al comando rm


Categorised as: Linux | Script | Sistemi operativi | Work

Comments are disabled on this post


Comments are closed.


Hide picture