Я очень мало знаю, когда речь заходит о Linux, но я собираюсь создать дешевый дубликат диска из старого сервера, который у нас есть. Сервер в настоящее время работает под управлением Ubuntu 12.04LTS и имеет 8 отсеков для дисков с возможностью горячей замены. В идеале это то, что я хотел бы случиться.

Я хотел бы, чтобы любой новый диск, который подключен к серверу, был создан с мастер-диска, скажем, /dev /SDB. Я знаю, что могу запустить следующую команду, чтобы начать копирование, но я хотел бы знать, есть ли способ автоматизировать это. Если новый диск подключен / обнаружен, запустите команду для создания образа, используя переменную для нового диска. Исходный диск всегда будет sdb, а местом назначения теоретически будет /dev / sdc в /dev / sdg, в зависимости от того, сколько дисков находится на сервере в это время.

Команда:

dd if=/dev/sdb of=- | tee >(dd of=/dev/sdc) >(dd of=/dev/sdd) >(dd of=/dev/sde)

Если действие / сценарий может выполняться при обнаружении нового оборудования / жесткого диска, может ли оно сделать что-то вроде этого ...

if /dev/sdc/ connected/detected
sleep 5 minutes     -gives time to connect multiple drives before imaging
Check for /dev/sdc   (if /dev/sdc not exist)
-if not connected goto exit
Check for /dev/sdd   (if /dev/sdd not exist)
-if not connected command1
Check for /dev/sde   (if /dev/sde not exist)
-if not connected command2
and so on

:command1
dd if=/dev/sdb of=- | tee >(dd of=/dev/sdc)
goto exit

:command2
dd if=/dev/sdb of=- | tee >(dd of=/dev/sdc) >(dd of=/dev/sdd)
goto exit

любая помощь будет принята с благодарностью. Я не знаю, есть ли способ выполнить скрипт при обнаружении нового оборудования / диска.

1 ответ1

0

Для этого вы можете использовать правила udev (см. Man 7 udev). Сначала создайте файл с именем 10-disk-imaging.rules в /etc/udev/rules.d/, затем добавьте в него следующую строку:

KERNEL == "sd [cg]" RUN+= "/path/to/dd/script% k"

Эта строка будет соответствовать любому диску с именем ядра sdc-g и затем запустить /path /to /dd /script% k, где% k - это имя устройства, данное ядром (то есть sdc). Затем просто создайте сценарий, который принимает имя устройства и выполняет фактическое дублирование.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .