Ubuntu - Duplicação de Disco - Automação

0

Eu sei muito pouco quando se trata de linux, mas eu estou olhando para construir um duplicador de disco barato de um servidor antigo que temos. O servidor está atualmente executando o Ubuntu 12.04LTS e possui 8 compartimentos de disco hot swappable. O ideal é que eu gostaria de acontecer.

Eu gostaria de ter um novo disco conectado ao servidor de um disco mestre, digamos / dev / SDB. Eu sei que posso executar o seguinte comando para iniciar a cópia, mas gostaria de saber se existe uma maneira de automatizá-lo. Se uma nova unidade for conectada / detectada, execute o comando para gerar imagens usando uma variável para a nova unidade. A unidade de origem será sempre sdb e o destino seria teoricamente / dev / sdc para / dev / sdg dependendo de quantas unidades estão no servidor naquele momento.

Comando:

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

Se uma ação / script pudesse ser executada em novas detecções de hardware / disco rígido, poderia fazer algo assim ...

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

toda e qualquer ajuda seria apreciada. Não sei se existe uma maneira de executar um script na nova detecção de hardware / unidade.

    
por Mpit52 28.08.2013 / 18:15

1 resposta

0

Você pode usar as regras do udev para realizar isso (veja man 7 udev). Primeiro, crie um arquivo chamado 10-disk-imaging.rules em /etc/udev/rules.d/ e, em seguida, adicione esta linha a ele:

KERNEL=="sd[c-g]" RUN+="/path/to/dd/script %k"

Esta linha irá corresponder a qualquer disco com o nome do kernel sdc -g e então executar / path / to / dd / script% k, onde% k é o nome do dispositivo dado pelo kernel (ou seja, sdc). Em seguida, basta criar um script que use um nome de dispositivo e execute a duplicação real.

    
por 28.09.2013 / 22:57