[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: помогите с bash и условием



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




--
С Уважением,
специалист по техническому и программному обеспечению,
системный администратор

Скубриев Владимир
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Россия, Ростовская область, г. Таганрог

тел. моб: +7 (918) 504 38 20
skype: v.skubriev
icq: 214-800-502
www: skubriev.ru


Reply to: