Habe mir ein kleines Bash-Script geschrieben, welches per Cronjob eine Statistik ausgibt, wieviel mal Files mit bestimmter Dateiendung downloadet wurden.
Im Beispiel wird der User ftp-username abgefragt und die Files mit iso Dateiendung.
Shell-Script
- #!/bin/sh
- ###############################################
- ####### Download Statistik fuer proFTPd #######
- ####### by treki (c) 2020 #######
- ###############################################
- # Muss mit root-Rechten laufen
- # Cronjob zBsp immer um Mitternacht ( sudo crontab -e )
- # 59 23 * * * /home/dl.statistik.sh
- # proFTPd Log-Datei = xferlog
- pfad="/home" # Pfad fuer dl.statistik.txt
- pfad_zu_xferlog="/var/log/proftpd" # Pfad zum xferlog
- zeileninhalt="home/daten/oeffentlich/" # Such-Phrase / Vollstaendiger Pfad bis zum File
- user="ftp-username" # Suche nach FTP User
- erweiterung="iso " # Suche nach Dateierweiterung
- # Datum in dl.statistik.txt schreiben
- echo $(date +"%A, %d %B %Y %T") >> "$pfad/dl.statistik.txt"
- # xferlog holen, filtern und in dl.statistik.txt ausgeben
- grep -E "${zeileninhalt}.*$user" "$pfad_zu_xferlog/xferlog" | grep -E "$erweiterung" | sed "s#.*${zeileninhalt}##;s#$erweiterung.*#$erweiterung#" | sort | uniq -c >>"$pfad/dl.statistik.txt"
- # Leerschlag/Zeile in dl.statistik.txt schreiben
- echo " " >> "$pfad/dl.statistik.txt"
- # Verarbeitete Zeilen aus xferlog loeschen
- grep -v "${zeileninhalt}.*$user" "$pfad_zu_xferlog/xferlog" > "$pfad/xferlog.tmp"
- mv -u "$pfad/xferlog.tmp" "$pfad_zu_xferlog/xferlog"
- # Verarbeitete Zeilen aus xferlog.1 loeschen
- grep -E "${zeileninhalt}.*$user" "$pfad_zu_xferlog/xferlog.1" | grep -E "$erweiterung" | sed "s#.*${zeileninhalt}##;s#$erweiterung.*#$erweiterung#" | sort | uniq -c >>"$pfad/dl.statistik.txt"
- grep -v "${zeileninhalt}.*$user" "$pfad_zu_xferlog/xferlog.1" > "$pfad/xferlog.1.tmp"
- mv -u "$pfad/xferlog.1.tmp" "$pfad_zu_xferlog/xferlog.1"
- exit