Re: [GUIDA] Trovare i file doppi sul NAS ed eliminarli
Inviato: domenica 18 gennaio 2015, 19:51
Scusate. Mo era sfuggito il topic. Aggiorno la prima pagina al dsm5.1
inviato con il mio topotalk
inviato con il mio topotalk
Synology Italia SPK Repository
https://www.synologyitalia.com/
Codice: Seleziona tutto
#!/bin/bash
if [ "$1" == "" ]; then
echo "purge o scan"
exit 1
fi
MD5=/bin/md5sum
SHA512SUM=/bin/sha512sum
RM=/bin/rm
TOUCH=/bin/touch
#Recupero tutti i file contenti il report dello scan del synology con data modifica successiva al file foo
while read line
do
/bin/7z x $line
INPUT=duplicate_file.csv
OLDIFS=$IFS
IFS=$'\t'
OLD_GROUP=""
MD5_1=""
MD5_2=""
SHA512SUM_1=""
SHA512SUM_2=""
FILE_1=""
FILE_2=""
FIRST_LINE=1
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
#Ciclo il file csv per recuperare l'elenco dei file probabilmente duplicati
while read group sharedFolder file size modifiedTime
do
if [ $FIRST_LINE != 1 ]; then
file=${file//\"/''}.
file=${file::-1}
#echo "Group : $group"
#echo "Shared Folder : $sharedFolder"
#echo "File : $file"
#echo "Size : $size"
#echo "Modified Time : $modifiedTime"
if [[ $OLD_GROUP == "" || $OLD_GROUP != "$group" ]]; then
OLD_GROUP="$group"
MD5_1=$($MD5 "$file" | awk '{ print $1 }')
SHA512SUM_1=$($SHA512SUM "$file" | awk '{ print $1 }')
FILE_1=$file
else
MD5_2=$($MD5 "$file" | awk '{ print $1 }')
SHA512SUM_2=$($SHA512SUM "$file" | awk '{ print $1 }')
FILE_2=$file
#Controllo se l'MD5 e lo SHA512 siano uguali
if [[ "$MD5_1" == "$MD5_2" && "$SHA512SUM_1" == "$SHA512SUM_2" ]]; then
if [ "$1" == "purge" ]; then
echo "Uguali. Rimuovo definitivamente $file"
$RM "$file"
else
echo "Uguali -> $file"
fi
else
if [ "$SHA512SUM_1" == "$SHA512SUM_2" ]; then
echo "BO? -> $FILE_1 -- $FILE_2"
else
echo "Diversi -> $FILE_1 -- $FILE_2"
fi
fi
fi
else
#Salto la riga con le intestazioni
FIRST_LINE=0
fi
rm $INPUT
done < $INPUT
$RM duplicate_file.csv
done < <(find /volume1/Paolo/synoreport/synoreport/Duplicati -name duplicate_file.csv.zip -newer foo)
$TOUCH ./foo
#if [ "$1" == "purge" ]; then
# $RM duplicate_file.csv.zip
#fi
if [ -f "$INPUT" ]; then
$RM $INPUT
fi
IFS=$OLDIFS
ho moltissimi file archiviati da molti anni, e vorrei avere la possibilità di poter verificarne ad esempio una volta l'anno l'integrità, però periodicamente faccio ordine e li sposto per cui vorrei una lista dove poter risalire puntualmente all'MD5 o SH1 in caso di necessità