#1 26. Dezember 2007 Skript um neuste dateien aufzulisten Hallo bin auf der Suche nach einem Script was mir die zuletzt erstellten Dateien auflistet. Dabei sind mir mehrere Varianten recht. zb könnte die Liste jeden Tag automatisch geschrieben werden und in einer Datei namens "NEU_datum.txt" gespeichert werden - oder in eine datei die zb alle 2 Stunden akutalisiert wird. Zugriff auf den FileServer erfolgt vorwiegend über Samba. Geht halt da drum das andere Benutzer nen Überblick haben was neu ist. + Multi-Zitat Zitieren
#2 28. Dezember 2007 AW: Skript um neuste dateien aufzulisten Schau dir mal das hier an. Musst wohl ein bisschen an dein System anpassen, aber vielleicht hilft dir das ja weiter... Code: #!/bin/ksh # ckdisk_file # Die groessten und die neusten Dateien scriptdir=/scripts datadir=/scripts/data tmpdir=/scripts/tmp PATH=$scriptdir:/usr/sbin/:$PATH datum=`date +'%y/%m/%d %H:%M'` mkdir -p $datadir $tmpdir 2>/dev/null # Ausgabe-Header und Hilfe-Text # ============================= head_big=" Die groessten Dateien $datum ---------------------" head_new=" Die neuesten Dateien $datum --------------------" USAGE=' ckdisk_file Die groessten und die neusten Dateien anzeigen. ----------------------------------------------- ckdisk_file [ -opts] [ arg=val ... ] Optionen: -big Nur die groessten Dateien auflisten. -new Nur die neusten Dateien auflisten. -h Hilfe: Diesen Text anzeigen. -i Info: Info ueber den momentanen Stand. Argumente: size=<n> Minimale Dateigroesse in KB (-big). tage=<n> Maximales Alters in Tagen (-new). n=<n> Anzahl angezeigter Dateien. list=<fs1>,<fs2>,... Liste der Verzeichnisse. ' # Die Befehlszeile # ================ # Optionen # -------- while [[ "$1" == -* ]] do [[ "$1" == -big ]] && opt_big=yes && shift && continue [[ "$1" == -new ]] && opt_new=yes && shift && continue # ---------------------------------------------------------- [[ "$1" == *h* ]] && echo "$USAGE" && exit [[ "$1" == *i* ]] && opt_i=yes [[ "$1" == *r* ]] && opt_r=yes [[ "$1" == *a* ]] && opt_a=yes [[ "$1" == *s* ]] && opt_s=yes [[ "$1" == *g* ]] && opt_g=yes [[ "$1" == *G* ]] && opt_G=yes [[ "$1" == *x* ]] && x11="-x11" [[ "$1" == *[iasG]* ]] && opt_erf=yes # Daten erfassen shift done # Argumente # --------- for arg in $* # z.B. list="...." ausfuehren do [[ "$arg" == *=* ]] && eval $arg done nlines=$n # n wird zu haeufig benutzt. fsize=$size ; unset size # size wird im Grafik-Modul benutzt. # Default-Funktion # ---------------- if [ ! "$opt_big$opt_new" ] ; then opt_big=yes opt_new=yes fi # Noch einige Vorbereitungen # ========================== # Alte temporaere Dateien loeschen rm -f $tmpdir/* 2>/dev/null # Hilfs-Module einlesen . alarm . grafik . selection # Liste von Rechnern, Filesystemen, Benutzern, ... list=`echo "$list" | sed 's/,/ /g'` # Kein Verzeichnis angegeben? if ! [ "$list" ] ; then echo "\nBitte wenigstens ein Verzeichnis angeben.\n" echo "$USAGE" exit 2 fi # Und nun der Hauptteil # ===================== # Die groessten Dateien # --------------------- if [ "$opt_big" ] ; then tmpfile=$tmpdir/bigfiles.tmp nlines=${nlines:-9999} # Anzahl angezeigter Zeilen fsize=${fsize:-100} # Default-Grenze in kB # Daten erfassen # -------------- if [ "$opt_erf" ] ; then fsize=$((fsize*2)) # find braucht Bloecke for dir in $list do { echo "\nin $dir" find $dir -type f -size +$fsize -exec ls -l {} \; | sort -rn -k 5 | head -$nlines } >> $tmpfile done fi # Info-Report: aktuelle Werte anzeigen # ------------------------------------ if [ "$opt_i" ] ; then echo "$head_big" cat $tmpfile echo fi fi # Die neusten Dateien # ------------------- if [ "$opt_new" ] ; then tmpfile=$tmpdir/newfiles.tmp nlines=${nlines:-9999} # Anzahl angezeigter Zeilen tage=${tage:-7} # Maximales Alter in Tagen # Daten erfassen # -------------- if [ "$opt_erf" ] ; then for dir in $list do { echo "\nin $dir" find $dir -type f -mtime -$tage -print > $tmpfile.f if [ -s $tmpfile.f ] ; then ls -lt `cat $tmpfile.f` | head -$nlines fi } >> $tmpfile done fi # Info-Report: aktuelle Werte anzeigen # ------------------------------------ if [ "$opt_i" ] ; then echo "$head_new" cat $tmpfile echo fi fi MfG Bernie + Multi-Zitat Zitieren