понедельник, 30 января 2017 г.

запись дисков blu ray Linux

#!/bin/bash
## контрольное время начало скрипта:
TIME1=$(date +"%s")

echo "";
echo "  _ _ Record BluRey _ _ "
echo "";

## проверить смонтирована ли директория:
if df -h | grep "/home/$USER/TMP_ISO_BR" | grep -o loop0 &> /dev/null;
then
## для нового проекта она должна быть отмонтирована:
    echo -en "\E[1;40;31m Запрос пароля для отмонтирования директории TMP_ISO_BR \E[1;40;31m"; echo "";
    echo "";
    sudo umount /home/$USER/TMP_ISO_BR
    echo " * * * отмонтирован! * * *"; echo "";
fi
## имя образа в виде текущей даты:
DAT=$(date +%d_%m_%Y)

## задать размер и тип виртуальной файловой системе:
## 1
echo -en "\033[37;1;41m Удалить существующие образы и создать новый? (y/n) \033[0m"; echo "";
read item1
case "$item1" in
    y|Y) echo -en "\E[1;47;30m Ввели «y», Созданиме, форматирование, монтироваение... \E[1;47;30m"; echo -en "\E[0m"; echo ""; echo "";
## проверить существование образов:
    if find /home/$USER/ -iname "*.udf" -type f -print | grep -o udf &> /dev/null;
    then
    ## для нового проекта она должна быть уделоно:
        find /home/$USER/ -iname "*.udf" -type f -exec rm {} \; && echo "     уделен файл .udf"; echo "";
    fi
##
    echo -en "\E[1;47;30m Create udf... \E[1;47;30m"; echo -en "\E[0m"; echo "";
## задать размер:
    truncate --size=23610MiB /home/$USER/.$DAT.udf
    echo -en "\E[1;40;31m Format... \E[1;40;31m"; echo "";
## создать файловую систему внутри файла:
    sudo mkudffs --utf8 --lvid=$DAT --vid=$DAT /home/$USER/.$DAT.udf
    echo -en "\E[1;47;30m Mount... \E[1;47;30m"; echo -en "\E[0m";  echo ""; echo "";
## монтирование образа как флешку\диск:
    sudo mount -oloop,rw,users,sync,gid=evg,uid=evg,iocharset=utf8 /home/$USER/.$DAT.udf /home/$USER/TMP_ISO_BR

## считает содержимое будущего диска:
## 2
echo -en "\E[1;32;40m Подсчитать файлы, папки, и размер? (y/n) \E[1;32;40m";  echo "";
read item2
case "$item2" in
    y|Y) echo -en "\E[0m Ввели «y», Считаем... \E[0m";  echo ""; echo "";

       echo " `find /home/$USER/TMP_ISO_BR/ -type f -print | wc -l` - количество файлов" > /home/$USER/TMP_ISO_BR/.BR.log
       echo " `find /home/$USER/TMP_ISO_BR/ -type d -print | wc -l` - количество директорий" >> /home/$USER/TMP_ISO_BR/.BR.log
       echo " `du -sh /home/$USER/TMP_ISO_BR/ | awk '{print $1}'` - общее количество занимаемого места" >> /home/evg/TMP_ISO_BR/.BR.log
       echo " `find /home/$USER/TMP_ISO_BR/ -type f -print | wc -l` - количество файлов"
       echo " `find /home/$USER/TMP_ISO_BR/ -type d -print | wc -l` - количество директорий"
       echo " `du -sh /home/$USER/TMP_ISO_BR/ | awk '{print $1}'` - общее количество занимаемого места"
    echo "";
## синхронизация\выгрузка буферов:
    sync
    echo -en "\E[1;40;31m Разрешить umount TMP_ISO_BR: \E[1;40;31m";  echo ""; echo "";
## отмонтирование директории:
    sudo umount /home/$USER/TMP_ISO_BR
    echo -e "\E[1;32;40m Umount OK \E[1;32;40m"
#

if dvd+rw-mediainfo /dev/sr0 2&> /dev/null | grep "Disc status:" | grep -o blank &> /dev/null;
then
## наличие пустого диска:
    echo "";
    echo -e "\E[1;32;40m _ Диск готов к записи :-) _ \E[1;32;40m"; echo "";
    echo "диск в приводе, жми далее" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
    echo -en "\E[0m"
#
else
    echo -e "\E[1m \E[1;33;40m"
    echo " !!! ВСТАВЬ ПУСТОЙ ДИСК !!!"
        echo "  ПРЕЖДЕ ЧЕМ ПРОДОЛЖИТЬ..."
        echo " !!! ВСТАВЬ ПУСТОЙ ДИСК !!!"
    echo "вставь диск, дубина" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
        echo -en "\E[0m"; echo "";
fi

## непосредственно запись:
## 3
echo -en "\033[37;1;41m Пишем диск? (y/n) \033[0m"; echo "";
read item2
case "$item2" in
    y|Y) echo -en "\033[31m Ввели «y», Выполняется запись... \033[40m"; echo ""; echo "";
         echo -en "\E[1;31m Record... \E[1;40m"; echo "";
## запись на максимальной скорости 6х, с отключенными резервными блоками:
growisofs -use-the-force-luke=spare:none -speed=6 -dvd-compat -Z /dev/sr0="/home/$USER/.$DAT.udf"
echo "нарезка диска выполнена" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
echo "далее произойдёт проверка качества копирования" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q

## отрицательный ответ о записи диска:
        ;;
## 3
    n|N) echo -en "\033[32m Ввели «n», Запись отменена! \033[40m" ; echo "";
    echo "";
        exit 0
        ;;
    *) echo -en "\E[0m Ничего не ввели. Выполняем действие по умолчанию... \E[0m"; echo "";
        exit 0
        ;;
esac
#
        ;;
## 2
    n|N) echo -en "\033[32m Ввели «n», завершаем работу скрипта... \033[40m"; echo "";
    echo "";
        exit 0
        ;;
    *) echo -en "\E[0m Ничего не ввели. Выполняем действие по умолчанию... \E[0m"; echo "";
        exit 0
        ;;
esac
#
        ;;
## 1
    n|N) echo -en "\033[32m Ввели «n», завершаем работу скрипта... \033[40m"; echo "";
    echo "";
        exit 0
        ;;
    *) echo -en "\E[0m Ничего не ввели. Выполняем действие по умолчанию... \E[0m"; echo "";
        exit 0
        ;;
esac

echo -en "\E[0m"
date >> /home/$USER/.backup/log_burn_br.txt
echo " исходного образа:" >> /home/$USER/.backup/log_burn_br.txt
md5sum /home/$USER/.$DAT.udf >> /home/$USER/.backup/log_burn_br.txt
echo " на носителе:" >> /home/$USER/.backup/log_burn_br.txt
blocks=$(expr $(du -b /home/$USER/.$DAT.udf | awk '{print $1}') / 2048)
dd if=''/dev/sr0'' bs=2048 count=$blocks | md5sum >> /home/$USER/.backup/log_burn_br.txt
echo " _______________________________________________________________________" >> /home/$USER/.backup/log_burn_br.txt
cat /home/$USER/.backup/log_burn_br.txt | tail -n 7
echo "";
##
IMG=$(cat /home/$USER/.backup/log_burn_br.txt | tail -n 7 | awk '{print $1}' | sed '1,3d' | sed -e '2d' | sed -e '1!d')
##
SR=$(cat /home/$USER/.backup/log_burn_br.txt | tail -n 7 | awk '{print $1}' | sed '1,3d' | sed -e '2d' | sed -e '2!d')
##
if [ $IMG = $SR ]
then
#     echo " `cat /home/$USER/.backup/log_burn_br.txt | tail -n 7 | sed -e '2!d'`"
#     echo "";
    echo -en "\033[32m Запись выполнена успешно \033[40m"
    echo -en "\E[0m"; echo "";
## завершение контрольного времени и подсчет в секундах ( что не возможно)
## выдаст значенияя в минутах, с округлением до челого числа:
    TIME2=$(date +"%s")
    TIME=$(($TIME1 - $TIME2))
    TIME0=$(echo "$TIME" | sed 's/^.//')
    if [ "$TIME0" -lt "60" ];
        then echo "$TIME0 секунд" #YES
        else
            X=$(( TIME0 / 60 ));
            echo " весь цикл записи выполнен за $X минут"
            mpg321 -g 100 /home/$USER/.backup/.torcs1.mp3 -q
            sleep 2
            echo "весь цикл записи выполнен за $X минут" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
            echo "диск можно извлечь" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
    fi
else echo -en "\033[37;1;41m ОШИБКА ПРИ ЗАПИСИ!!! ДИСК В УТИЛЬ!!! \033[0m"; echo "";
     mpg321 -g 100 /home/$USER/.backup/.torcs1.mp3 -q
     sleep 2
     mpg321 -g 100 /home/$USER/.backup/.torcs1.mp3 -q
     sleep 3
     echo "Ошибка при записи! диск выкинуть" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
fi
echo "";

Комментариев нет:

Отправить комментарий

h265.sh

#!/bin/bash file="../mp4" if [ -d $file ]; then         echo "  Директория существует :-) "         for i in *.mp4; do f...