Änderungen

Zur Navigation springen Zur Suche springen
backup
#!/bin/sh

# 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

Navigationsmenü