Скрипт для записи и проверки DVD


Anonymous - Posted on 22 Апрель 2008

Периодически приходится писать на DVD разные вещи в консоли. Нередко я сначала раскидываю данные по каталогам, а потом уже пишу по принципу "1 каталог - 1 диск".

Для автоматизации процесса написал скрипт, который пишет на болванку содержимое каталога, проверяет качество записи и, в случае успеха, выдаёт записанный диск.

В первых строчках можно изменить имя устройства рекордера и метку, которая присваивается диску по умолчанию.

Запускать так:
$ burner dir_with_files [new_label]

Параметр new_label опционален.

При необходимости можно и под прожиг CD модифицировать...

#!/bin/sh

dvd_dev=/dev/dvd
def_label="MY_SUPER_PUPER_DISK"
########################################

if [ "x$1" == "x" ]; then
  echo "Usage: $0 dir-to-burn [label]"
  exit 1;
fi

d=`readlink -f "$dvd_dev"`;
if [ -z "$d" -o ! -b "$d" ]; then
  echo "Device $dvd_dev does not exists"
  exit 9
fi

dvd_dev=$d

if pushd "$1"; then
  if [ "x$2" == "x" ]; then
    label="$DEF_LABEL"
  else
    label="$2"
  fi
  if growisofs -dvd-compat -Z $dvd_dev -J -r "-V$label" .; then
    sleep 1
    # now test
    eject $dvd_dev
    eject -t $dvd_dev
    mount $dvd_dev
    if [ "x$?" != "x0" ]; then
       sleep 2
       mount $dvd_dev
       if [ "x$?" != "x0" ]; then
         echo "Cannot mount DVD!"
       exit 4
       fi
    fi
    dvd=`mount |grep $dvd_dev |cut -f 3 -d " "`
    if [ time diff -urNq $dvd . ]; then
      eject $dvd_dev
    else
      echo "Verifying failed..."
      exit 5
    fi
  else
    echo "Burning failed..."
    exit 3
  fi
else
  echo "Cannot cd to $1..."
  exit 2
fi

popd

echo
echo "Burning OK!"
echo
exit 0

0
Ваша оценка: Ничего