Poormens desktop search engine.sh

Version vom 12. September 2007, 17:52 Uhr von Fries43 (Diskussion | Beiträge) (backup)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
  1. !/bin/sh
  1. sqlite /root/spielereien/ganze_festplatte.db "select * from n where size>9999999 ORDER BY size ASC LIMIT 5"

fkt_create_db () {

       DB="${WORKING_DIR}$(echo "$1" | md5sum -b | cut -d" " -f1).db"
       rm -f  "$DB"
       sqlite "$DB" "create table n (id INTEGER PRIMARY KEY,deep INTEGER,size INTEGER,time INTEGER,fpat TEXT,fnam TEXT,type TEXT,mime TEXT,hash TEXT);"

}

fkt_gen_index () {

       echo "updating database \"$DB\" with index of \"$1\", deep = $DEEP"
       find "$1" -type f -printf "%s|%A@|%h|%f\n" |
        while read LINE; do
               let LINES+=1
               IFS="|"
               set $LINE
               FPAT="$(echo      "$3"    | sed "s/'//g")"; test "$DEEP" -gt 0 && a=a
               FNAM="$(echo         "$4" | sed "s/'//g")"
               TYPE="$(file -b   "$3/$4" | sed "s/'//g")"
               MIME="$(file -ib  "$3/$4")"
               HASH="$(md5sum -b "$3/$4" | cut -d" " -f1)"
               DATA="'$DEEP','$1','$2','$FPAT','$FNAM','$TYPE','$MIME','$HASH'" ; # echo "$DATA"
               sqlite "$DB" "insert into n (deep,size,time,fpat,fnam,type,mime,hash) values ($DATA);"
                 if [ "$MIME" = "application/x-rar" ]; then
                       let DEEP+=1
                       mkdir  "${WORKING_DIR}${HASH}/"
                       echo "unRARing \""$FPAT/$FNAM"\""
                       unrar -inul e "$FPAT/$FNAM" "${WORKING_DIR}${HASH}/"
                       fkt_gen_index "${WORKING_DIR}${HASH}/"
                       rm -fR "${WORKING_DIR}${HASH}/"
                       let DEEP-=1
               elif [ "$MIME" = "application/x-zip" ]; then
                       let DEEP+=1
                       mkdir  "${WORKING_DIR}${HASH}/"
                       echo "unZIPing \"$FPAT/$FNAM\""
                       unzip -qq "$FPAT/$FNAM" -d "${WORKING_DIR}${HASH}/"
                       fkt_gen_index "${WORKING_DIR}${HASH}/"
                       rm -fR "${WORKING_DIR}${HASH}/"
                       let DEEP-=1
               fi
       done
       echo "leaving directory \"$1\", deep = $DEEP"
       unset IFS

}

if [ -z "$1" ] || [ -z "$2" ]; then

       echo "Usage: $0 /directory/to/crawl/ /working/dir/"

else

       DEEP=0
       WORKING_DIR="$2"
       fkt_create_db   "$1"
       fkt_gen_index   "$1"

fi