Script para reconhecer os HDDs e executar o Smartctl

2

Estou pensando em fazer um script para reconhecer quais HDDs estão em uso (sda, sdb, etc) e executar um Smartctl em cada um que esteja em uso, mas não sei como posso começar, qualquer um pode me ajudar?

    
por Felipe Araujo 12.03.2014 / 14:57

2 respostas

1

lsblk -o tran,name,mountpoint

lsblk --help

findmnt --help

Então, aparentemente, algumas das opções que eu especifiquei acima ainda não estão amplamente disponíveis. Está bem. Tente algo assim:

for blk in $(lsblk -ndo name) ; do
    udevadm info --name /dev/$blk 
done

Isso deve fornecer todas as informações que você pode precisar sobre os dispositivos de bloco em seu sistema agora servidos em pequenos pares chave = valor.

    
por 12.03.2014 / 17:09
0

Você pode usar o script BASH. Aqui está um exemplo do que você pode fazer assumindo que você está em um sistema operacional Linux :

#!/bin/bash
mount | grep "/dev/sd" | awk '{print $1}' | while read partition
do 
    echo ${partition:0:8} 
done | sort | uniq | while read disk
do
    #All sdX disks are parsed here using the $disk variable
    echo "Disk : $disk"
    #Insert your smartctl commands here e.g:
    sudo smartctl --smart=on --offlineauto=on --saveauto=on $disk
done

você pode alterar a string / dev / sd acima com o descritor correspondente dos seus discos: / dev / hd , / dev / sg ou o que você encontrar na saída do comando mount .

    
por 12.03.2014 / 16:41