Auto-mount drivers flash USB para servidores remotos usando o arquivo bash para operação de backup agendada

1

Eu tenho que fazer backup agendado dos bancos de dados dos servidores usando um cronjob para a tarefa de backup e um script bash para a operação de backup. É uma aplicação web PHP. Você pode optar por armazenar seu arquivo de backup no disco rígido do servidor ou em uma unidade flash USB externa ou no disco rígido.

O usuário adiciona uma tarefa de backup e a edita a partir do aplicativo de página da Web projetado para mostrar todas as tarefas de backup salvas com todas as informações:

server - database - tables - target server - target storage - day - hour - minute

Tudo isso é salvo em um arquivo xml e mostrado em uma tabela. Você pode adicionar, editar ou excluir uma tarefa dessa tabela nessa página.

As unidades USB devem ser montadas automaticamente nos servidores remotos e o aplicativo PHP deve informar ao usuário quando uma unidade está disponível para as tarefas salvas com armazenamento de destino igual a usb.

Eu tenho um script bash fazendo isso, mas manualmente em um servidor de cada vez. Estou usando o CentOS em convidados do Virtual Box. Meu host do Virtual Box é o Ubuntu e ainda sou um iniciante. Eu preciso da sua ajuda com comandos.

Atualmente tenho um comando que obtém o nome de usb (não seu id) assim:

# Get USB stick count, name and size  
dec_count='fdisk -l | tr -s ' ' | grep 'Disk /' -c'  
fdisk -l | tr -s ' ' | grep 'Disk /' | cut -f3 -d'/' | cut -f1 -d',' | sed -n "2,$dec_count p"  

Isso porque eu preciso de um ID único para cada drive USB, não o nome que o Linux dá a ele (como o sdb).

Então, como meu aplicativo PHP sabe se há uma unidade USB disponível? Um cronjob deveria fazer isso ou deveria ser feito em PHP?

Estou tomando este problema corretamente? Quaisquer links de ajuda ou conselhos são tão bem-vindos. Precisa fazer isso rápido.

Obrigado antecipadamente.

    
por Nancy Smith 08.03.2013 / 17:33

1 resposta

0

Você pode usar tarefas Cron para executar o script a cada minuto e não apenas no horário programado. O primeiro campo é para Minutos.

Se você especificar * neste campo, ele será executado a cada minuto:

* * * * * /home/user/script.sh

Se você especificar * / 5 no primeiro campo, ele será executado a cada 5 minutos:

*/5 * * * * /home/user/script.sh
    
por 09.03.2013 / 16:07