#!/bin/bash # @autor 6543@obermui.de # @date 2019-01-09 # @version 0.2 function free() { df "$1" | grep '/dev/' | sed -r -e "s/[\t\ ]+/ /g" | cut -d ' ' -f 4 } md5="2cp" aim="/tmp/sdl/oberoed" md5_tmp=`mktemp` freenow=0 cat "$md5" > "$md5_tmp" cat "$md5_tmp" | while read line; do file_orig="$(echo $line | cut -c 33- | sed -r -e "s/^[\ ]//g")" file_size=$(du "$file_orig" | cut -f 1) file_md5=$(echo $line | cut -c -32) file_aim_dir=$(echo $file_orig | rev | cut -d '/' -f 2- | rev | sed 's/data\/shares\/Filme/tmp\/sdl\/oberoed/g') file_aim=$(echo $file_orig | sed 's/data\/shares\/Filme/tmp\/sdl\/oberoed/g') [ "$file_orig" == "$file_aim" ] && { echo Script ERROR; exit 255; } freenow=$(free "$aim") #add puffer freenow=$((freenow-10240)) if [ -f "$file_orig" ]; then if [ "$freenow" -ge "$file_size" ]; then mkdir -p "$file_aim_dir" [ -f "$file_aim" ] && rm "$file_aim" file_md5_new=$(cat "$file_orig" | tee "$file_aim" | md5sum | cut -c -32) if [ "${file_md5_new}" == "${file_md5}" ]; then echo "$file_md5 $file_aim" >> /tmp/sdl/md5.txt sed -i "/$file_md5/d" "$md5" else echo "Error: Hash mismatch: \"NEW:${file_md5_new} OLD:${file_md5}\" $file_aim" rm "$file_aim" fi else echo "To Big: $file_md5 $file_orig" fi else echo "Error: Not Exist: $file_orig" sed -i "/$file_md5/d" "$md5" fi done rm "$md5_tmp"