1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/bash
- #_sudo_apt_install_
- #_sudo_dpkg_i_
- source $HOME/.SCR/lib.sh
- fun_log_dir_create $0 30 1
- fun_correct_disk_space ()
- {
- dir_path="$1" # путь до корректируемой папки
- norma="$2" # норма свыше которой, диск считается переполнен
- name_sdx="$3" # имя диска по df. Например: sda3
- name_disk="$4" # имя диска для сообщений. Пример: ДАТА1
- fun_create_directory "$dir_path"
- fun_echo_variable dir_path norma name_sdx name_disk
- fun_persent ()
- {
- percent="$(df | grep "$name_sdx" | awk '{print$5}' | sed 's/%//g')"
- fun_echo_stadia 11 0 "Disk $name_disk is $percent persent full"
- }
- fun_persent $name_sdx $name_disk
- while [ "${percent}" -gt "${norma}" ] # удаление файлов из папки
- do
- object1="$(ls -At $dir_path | tail -n1)" # find object 1 level. Example: Dr.House
- object1_path="$dir_path/$object1" # full path
- object1_date="$(stat "$object1_path" | grep "Modify" | cut -f2-4 -d" ")" # get modification date
- if [ -e "$object1_path" ] # if object exist
- then
- if [ -d "$object1_path" ] # if folder
- then
- if [ `ls "$object1_path" | wc -l` -eq 0 ] # if empty folder
- then
- stadia="Delete empty folder $object1_path"
- rm -rf "$object1_path"
- fun_analize_command "$stadia"
- else
- object2="$(ls -A "$object1_path" | head -n1)" # find object 2 level. Example: Season2
- object2_path="$object1_path/$object2" # full path
- object2_date="$(stat "$object2_path" | grep "Modify" | cut -f2-4 -d" ")" # get modification date
- if [ -d "$object2_path" ] # if folder
- then
- if [ `ls "$object2_path" | wc -l` -eq 0 ] # if empty
- then
- stadia="Delete empty subfolder $object2_path"
- rm -rf "$object2_path"
- fun_analize_command "$stadia"
- else
- object3="$(ls -A "$object2_path" | head -n1)" # find object 3 level. Example: Episode2.avi
- object3_path="$object2_path/$object3" # full path
- stadia="Delete object $object3_path"
- rm -rf "$object3_path"
- fun_analize_command "$stadia"
- touch -a --date="$object2_date" "$object2_path" # update modification date of object 2 level
- touch -m --date="$object2_date" "$object2_path"
- fi
- else
- stadia="Delete file $object2_path"
- rm -rf "$object2_path"
- fun_analize_command "$stadia"
- fi
- touch -a --date="$object1_date" "$object1_path" # update modification date of object 1 level
- touch -m --date="$object1_date" "$object1_path"
- fi
- else
- stadia="Delete file $object1_path"
- rm -rf "$object1_path"
- fun_analize_command "$stadia"
- fi
- echo "$(date +%y-%m-%d_%H-%M-%S_%6N) $stadia" >> "${tmp1}/${date_ymd_HMS}"
- voice_message="Files deleted from disk $name_disk"
- fi
- fun_persent $name_sdx $name_disk
- done
- ,speech_en.sh "$voice_message"
- voice_message=""
- }
- fun_correct_disk_space "$HOME/DATA1/Media1" 90 sda3 DATA1
- fun_correct_disk_space "$HOME/DATA2/Media2" 90 sda4 DATA2
|