16:53 Thu 22 Aug , Владимир Скубриев wrote: > On 22.08.2013 16:43, Andrey Tataranovich wrote: > >14:35 Thu 22 Aug , Владимир Скубриев wrote: > >>TO="/dev/sdb" > >>SERIAL="RTF57NGH" > >>TO_DISK_INFO=`udevadm info --query=all -n $TO` > >> > >>echo $TO_DISK_INFO | grep SERIAL_SHORT | grep -q $SERIALTO > >># проверяем результат последней команды > >>if [ $? -ne 0 ]; > >>then > >> echo " Parametr <SERIALTO> do not correspond hard drive <TO> - > >>Exiting, beacuse we cannot delete ALL DATA ..." > >> echo " ... !!! BE Careful !!! ..." > >> exit 3 > >>fi > >Проверить наличие нужного диска можно проще: > > > >BACKUP_DISK="/dev/disk/by-id/usb-Easy_Disk_AA040127_007375-0:0" > >if [ ! -b "$BACKUP_DISK" ]; then > > echo "Correct backup disk not found: $BACKUP_DISK" >&2 > > exit 1 > >fi > > > Я стремился к универсальности, вот: > > #!/bin/bash > > FROM=$1 > TO=$2 > SERIALTO=$3 > > TO_DISK_INFO=`udevadm info --query=all -n "$TO"` > > if [ ! $# == 3 ]; then > echo "Usage: <FROM> <TO> <SERIALNUMBER_OF_DISK_TO>" > exit 1 > fi > > if [[ ! -b "$2" ]] || [[ ! -b "$1" ]]; then > echo "First | Second parametr is not a valid Block device" > exit 2 > fi > > echo "$TO_DISK_INFO" | grep SERIAL_SHORT | grep -q "$SERIALTO" > if [ $? -ne 0 ]; then > echo " Parametr <SERIALTO> do not correspond hard drive <TO> - > Exiting, beacuse we cannot delete ALL DATA ..." > exit 3 > fi > > echo "$TO_DISK_INFO" | grep ID_BUS | grep -qi usb > if [ $? -ne 0 ]; then > echo " This disk is not USB Backup Disk - Exiting, beacuse we > cannot delete ALL DATA ..." > exit 4 > fi
Ваш вариант сложнее. В моем варианте проверяется все необходимое, чтобы не стереть неверный диск. И константу BACKUP_DISK можно сразу использовать в скрипте вместо /dev/sd?. -- WBR, Andrey Tataranovich -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

