#!/bin/bash
# #
## ##
### Идея автоматического копирования файлов ###
### на внешнее хранилище. Работа польностью ###
### должна быть автоматизирована! По завер- ###
### шению копирования, скрипт сохранит ###
### логи, в которых будет понятно чего и ###
### сколько было скопировано, общее количе- ###
### ство файлов, общий размер, время начала ###
### и завершения работы, потраченное время. ###
## ##
# #
# Запись в лог. Время запуска копирования.
touch $OUT/backupUSB.txt
echo " Start `date`" >> $OUT/backupUSB.txt
sleep 1
DISPLAY=:0 notify-send -t 59000 "backup.sh" "Start `date`"
# переменные директорий (для простоты что либо изменить)
# Исходная папка
echo "Введите адрес откуда копировать, начиная с / "
read IN
# Конечный результат
echo "Введите адрес куда копировать, начиная с / "
read OUT
# Создать директорию. Запись в лог в корне директории.
mkdir -p $OUT/$(date +%Y.%m.%d)
# Создать директоии для изображений по расширениям
mkdir -p $OUT/$(date +%Y.%m.%d)/Picture/jpeg
mkdir -p $OUT/$(date +%Y.%m.%d)/Picture/cr2
mkdir -p $OUT/$(date +%Y.%m.%d)/Picture/gif
mkdir -p $OUT/$(date +%Y.%m.%d)/Picture/tiff
# Создать директории для документов по расширениям
mkdir -p $OUT/$(date +%Y.%m.%d)/Document/doc
mkdir -p $OUT/$(date +%Y.%m.%d)/Document/xls
mkdir -p $OUT/$(date +%Y.%m.%d)/Document/ppt
mkdir -p $OUT/$(date +%Y.%m.%d)/Document/txt
mkdir -p $OUT/$(date +%Y.%m.%d)/Document/rtf
mkdir -p $OUT/$(date +%Y.%m.%d)/Document/pdf
mkdir -p $OUT/$(date +%Y.%m.%d)/Document/djvi
# Создать директрии для кротких видеороликов
mkdir -p $OUT/$(date +%Y.%m.%d)/min_move/avi
mkdir -p $OUT/$(date +%Y.%m.%d)/min_move/mp4
mkdir -p $OUT/$(date +%Y.%m.%d)/min_move/wmv
mkdir -p $OUT/$(date +%Y.%m.%d)/min_move/3gp
# Создать директрии для фильмов
mkdir -p $OUT/$(date +%Y.%m.%d)/full_move/avi
mkdir -p $OUT/$(date +%Y.%m.%d)/full_move/mp4
mkdir -p $OUT/$(date +%Y.%m.%d)/full_move/wmv
mkdir -p $OUT/$(date +%Y.%m.%d)/full_move/mkv
mkdir -p $OUT/$(date +%Y.%m.%d)/full_move/mpeg
mkdir -p $OUT/$(date +%Y.%m.%d)/full_move/mpeg4
# Создать директрии для музыки
mkdir -p $OUT/$(date +%Y.%m.%d)/music/mp3
# Создать директрии для программ \ игр
mkdir -p $OUT/$(date +%Y.%m.%d)/games/exe
# Создать директрии для телефона \ смартфона
mkdir -p $OUT/$(date +%Y.%m.%d)/mobile/jar
# Создать директрии для образов дисков
mkdir -p $OUT/$(date +%Y.%m.%d)/obraz/iso
echo "Папка создана $OUT/$(date +%Y.%m.%d)" >> $OUT/backupUSB.txt
echo "Все директории созданы" >> $OUT/backupUSB.txt
# Подсчет файлов по расширениям.
echo "jpeg `find $IN -iname *.jpeg -print | wc -l`" >> $OUT/backupUSB.txt
echo "jpg `find $IN -iname *.jpg -print | wc -l`" >> $OUT/backupUSB.txt
echo "cr2 `find $IN -iname *.cr2 -print | wc -l`" >> $OUT/backupUSB.txt
echo "gif `find $IN -iname *.gif -print | wc -l`" >> $OUT/backupUSB.txt
echo "tiff `find $IN -iname *.tiff -print | wc -l`" >> $OUT/backupUSB.txt
echo "txt `find $IN -iname *.txt -print | wc -l`" >> $OUT/backupUSB.txt
echo "doc `find $IN -iname *.doc -print | wc -l`" >> $OUT/backupUSB.txt
echo "docx `find $IN -iname *.docx -print | wc -l`" >> $OUT/backupUSB.txt
echo "xls `find $IN -iname *.xls -print | wc -l`" >> $OUT/backupUSB.txt
echo "pdf `find $IN -iname *.pdf -print | wc -l`" >> $OUT/backupUSB.txt
echo "exe `find $IN -iname *.exe -print | wc -l`" >> $OUT/backupUSB.txt
echo "iso `find $IN -iname *.iso -print | wc -l`" >> $OUT/backupUSB.txt
echo "jar `find $IN -iname *.jar -print | wc -l`" >> $OUT/backupUSB.txt
echo "sis `find $IN -iname *.sis -print | wc -l`" >> $OUT/backupUSB.txt
echo "flac `find $IN -iname *.flac -print | wc -l`" >> $OUT/backupUSB.txt
echo "mp3 `find $IN -iname *.mp3 -print | wc -l`" >> $OUT/backupUSB.txt
echo "wmv `find $IN -iname *.wmv -print | wc -l`" >> $OUT/backupUSB.txt
echo "3gp `find $IN -iname *.3gp -print | wc -l`" >> $OUT/backupUSB.txt
echo "mkv `find $IN -iname *.mkv -print | wc -l`" >> $OUT/backupUSB.txt
echo "mp4 `find $IN -iname *.mp4 -print | wc -l`" >> $OUT/backupUSB.txt
echo "avi `find $IN -iname *.avi -print | wc -l`" >> $OUT/backupUSB.txt
echo "Подсчет иходных файлов в $IN выполнен успешно" >> $OUT/backupUSB.txt
# Начать копирование по раширениям и размеру.
find $IN -iname "*.jpeg" -size +30k -exec cp {} $OUT/$(date +%Y.%m.%d)/Picture/jpeg \;
find $IN -iname "*.jpg" -size +30k -exec cp {} $OUT/$(date +%Y.%m.%d)/Picture/jpeg \;
find $IN -iname "*.cr2" -size +30k -exec cp {} $OUT/$(date +%Y.%m.%d)/Picture/cr2 \;
find $IN -iname "*.raw" -size +30k -exec cp {} $OUT/$(date +%Y.%m.%d)/Picture/cr2 \;
find $IN -iname "*.gif" -size +30k -exec cp {} $OUT/$(date +%Y.%m.%d)/Picture/gif \;
find $IN -iname "*.tiff" -size +30k -exec cp {} $OUT/$(date +%Y.%m.%d)/Picture/tiff \;
find $IN -iname "*.doc" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/doc \;
find $IN -iname "*.docx" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/doc \;
find $IN -iname "*.xls" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/xls \;
find $IN -iname "*.ppt" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/ppt \;
find $IN -iname "*.txt" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/txt \;
find $IN -iname "*.rtf" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/rtf \;
find $IN -iname "*.pdf" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/pdf \;
find $IN -iname "*.djvi" -exec cp {} $OUT/$(date +%Y.%m.%d)/Document/djvi \;
find $IN -iname "*.avi" -size -599M -exec cp {} $OUT/$(date +%Y.%m.%d)/min_move/avi \;
find $IN -iname "*.mp4" -size -599M -exec cp {} $OUT/$(date +%Y.%m.%d)/min_move/mp4 \;
find $IN -iname "*.wmv" -size -599M -exec cp {} $OUT/$(date +%Y.%m.%d)/min_move/wmv \;
find $IN -iname "*.3gp" -size -599M -exec cp {} $OUT/$(date +%Y.%m.%d)/min_move/3gp \;
find $IN -iname "*.avi" -exec cp {} $OUT/$(date +%Y.%m.%d)/full_move/avi \;
find $IN -iname "*.mp4" -exec cp {} $OUT/$(date +%Y.%m.%d)/full_move/mp4 \;
find $IN -iname "*.wmv" -exec cp {} $OUT/$(date +%Y.%m.%d)/full_move/wmv \;
find $IN -iname "*.mkv" -exec cp {} $OUT/$(date +%Y.%m.%d)/full_move/mkv \;
find $IN -iname "*.mpeg" -exec cp {} $OUT/$(date +%Y.%m.%d)/full_move/mpeg \;
find $IN -iname "*.mpeg4" -exec cp {} $OUT/$(date +%Y.%m.%d)/full_move/mpeg4 \;
find $IN -iname "*.mp3" -exec cp {} $OUT/$(date +%Y.%m.%d)/music/mp3 \;
find $IN -iname "*.exe" -exec cp {} $OUT/$(date +%Y.%m.%d)/games/exe \;
find $IN -iname "*.msi" -exec cp {} $OUT/$(date +%Y.%m.%d)/games/exe \;
find $IN -iname "*.7z" -exec cp {} $OUT/$(date +%Y.%m.%d)/games/exe \;
find $IN -iname "*.rar" -exec cp {} $OUT/$(date +%Y.%m.%d)/games/exe \;
find $IN -iname "*.zip" -exec cp {} $OUT/$(date +%Y.%m.%d)/games/exe \;
find $IN -iname "*.jar" -exec cp {} $OUT/$(date +%Y.%m.%d)/mobile/jar \;
find $IN -iname "*.sis" -exec cp {} $OUT/$(date +%Y.%m.%d)/mobile/jar \;
find $IN -iname "*.iso" -exec cp {} $OUT/$(date +%Y.%m.%d)/obraz/iso \;
find $IN -iname "*.mdf" -exec cp {} $OUT/$(date +%Y.%m.%d)/obraz/iso \;
echo "Копирование успешно завершено" >> $OUT/backupUSB.txt
# Подсчет общего размера скопированных данных.
echo "Copy file -- `find $OUT/$(date +%Y.%m.%d) -type f -print | wc -l`" >> $OUT/backupUSB.txt
echo "Size dir -- `du -sh $OUT/$(date +%Y.%m.%d)`" >> $OUT/backupUSB.txt
# Время завершения работы скрипта.
echo "Stop `date`" >> $OUT/backupUSB.txt
DISPLAY=:0 notify-send -t 59000 "Copy file -- `find $OUT/$(date +%Y.%m.%d) -type f -print | wc -l` & Size dir -- `du -sh $OUT/$(date +%Y.%m.%d)`"
Комментариев нет:
Отправить комментарий