logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 18-09-2024 22:46:04

joffrey575
Membre
Distrib. : Debian Bullseye
Inscription : 19-12-2016

Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Bonjour,

J'ai déjà un script bash sous debian bookworm.

Il a pour but de regarder certain paramètres d'intérêt de la table SMART des HDD et SSD.

Je l'ai doté d'une boucle for pour parcourir l'ensemble des périphériques type disk sur un PC.

/dev/sda
/dev/sdb
...



J'observe malheureusement que je n'ai qu'un élément dans le tableau que je récupère.

declare -a disk=$(lsblk -l -d -p -n -o NAME,TYPE | awk '($2=="disk"){print $1}')
echo "${#disk[@]}"

for d in "${disk[@]}"
do
    echo "COMMENCEMENT"
    echo "$d"
    DISK=$d
    DISK_sub="$(basename $d)"

    TYPE="$(smartctl -a $DISK | grep 'Rotation Rate:' | awk '{print $3$4$5}')"

    if [ "$TYPE" = "SolidStateDevice" ]; then

    elif [ "$TYPE" != "SolidStateDevice" ]; then

    fi
done
exit 0



Auriez-vous un conseil vis à vis de ce besoin ?

script entier

https://debian-facile.org/paste-4E0B39F … 88467bd557

Merci beaucoup

Hors ligne

#2 19-09-2024 13:58:34

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Hello,

C'est normal.

Un tableau bash s'affecte ainsi :

Tab=( elem1 elem2 elem3 ... )


Or tu veux le retour d'une commande pour remplir le tableau.
Le mieux pour "splitter" le retour d'une commande dans un tableau est d'utiliser mapfile (ou readarray qui est un synonyme).
Dans ton cas :

mapfile -t disk < <(lsblk -l -d -p -n -o NAME,TYPE | awk '($2=="disk"){print $1}')


Je pense aussi que la commande pourrait être revue/simplifiée …

Pour de l'aide :

help mapfile

ou

man bash


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#3 19-09-2024 14:54:30

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

J'ai trouvé plus simple. Il n'y a pas besoin de awk, lsblk peut filtrer en fonction du type.
ça donne quelques choses comme ça pour la création du tableau disks :


readarray -t disks < <(lsblk -lpn --filter 'TYPE=="disk"' -o NAME)
 


Ce qui est quand même plus propre smile

Ah ! Oui, j'ai utilisé le nom readarray au lieu de mapfile, mais ce sont les mêmes
commandes internes de bash. Dans ce cas je trouve ce nom plus approprié wink

Dernière modification par enicar (19-09-2024 14:58:03)

Hors ligne

#4 19-09-2024 15:05:49

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

hello
encore une commande que je découvre merci Tawal

lsblk -l -d -p -n -o NAME,TYPE | awk '/disk/{print $1}'


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#5 19-09-2024 15:08:06

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Ici je ne m’embêterais pas avec un tableau :

disks=$(lsblk -lpn --filter 'TYPE=="disk"' -o NAME)
echo "$disks"

for d in $disks
do
  # (…)
done
exit 0


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

En ligne

#6 19-09-2024 15:16:56

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

la syntaxe pour lsblk c'est pas bon, y'a pas d'option --filter

-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#7 19-09-2024 15:36:43

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Idem pas d'option --filter :

 lsblk --version


lsblk de util-linux 2.38.1

Dernière modification par Tawal (19-09-2024 15:37:34)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#8 19-09-2024 15:38:01

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Croutons a écrit :

la syntaxe pour lsblk c'est pas bon, y'a pas d'option --filter


Si mais pas dans la version de stable (bookworm), elle est trop vielle big_smile

PS: Dans la sid la version de lsblk :


lsblk --version
 



lsblk de util-linux 2.40.2
 

Dernière modification par enicar (19-09-2024 15:43:38)

Hors ligne

#9 19-09-2024 15:41:06

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Par contre il y aurait une autre possibilité :


readarray -t disks < <(lsblk -dlpn -O NAME)
 

Hors ligne

#10 19-09-2024 15:47:58

ubub
Membre
Distrib. : Debian
(G)UI : xfce
Inscription : 14-05-2019

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

-Q, --filter expr
Print only the devices that meet the conditions specified by the expr. The filter is assessed prior to lsblk collecting data for all output columns. Only the necessary data for the lazy evaluation of the expression is retrieved from the system. This approach can enhance performance when compared to post-filtering, as commonly done by tools such as grep(1).

This feature is EXPERIMENTAL. See also scols-filter(5). For example exclude sda and sdb, but print everything else ('!~' is a negative regular expression matching operator):

lsblk --filter 'NAME !~ "sd[ab]"'


   

util-linux 2.40.2


https://manpages.debian.org/unstable/ut … .8.en.html

Hors ligne

#11 19-09-2024 15:57:06

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Le soucis avec cette extension c'est la man page dit d'aller voir dans scols-filter(5) qui n'est pas encore dans debian big_smile
Du coup je suis allée voir sur internet : https://www.man7.org/linux/man-pages/ma … ter.5.html

Hors ligne

#12 19-09-2024 19:55:26

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

D'ailleurs je suis en train de réagir mais la dénomination /dev/sdX ou /dev/hdX n'est pas fiable pour identifier un disque.
Car l'attribution de "l'indice" se fait au fur et à mesure de la découverte des disques.
Ce qui veut dire que cela peut changer entre 2 démarrages.
Il vaut mieux utiliser les UUID, ils ont été fait pour ça.

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#13 20-09-2024 17:58:37

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

y'a un UUID pour le disque? tu fais ça avec quel commande?

-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#14 20-09-2024 20:00:55

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

Je dirais bien :

ls -l /dev/disk/by-uuid


total 0
lrwxrwxrwx 1 root root 10 17 sept. 16:05 3cf6c1fd-fea8-4346-b9c3-65ad7fdfc52e -> ../../sdb1
lrwxrwxrwx 1 root root 10 17 sept. 16:05 27643790-8f9e-4fff-9f65-c074292b58ae -> ../../sda3
lrwxrwxrwx 1 root root 10 20 sept. 17:05 aa6afe04-328a-4632-bcb5-6afd80204990 -> ../../sda1
lrwxrwxrwx 1 root root 10 17 sept. 16:05 c5d3dd76-b86c-482d-bb93-e9a482bd6669 -> ../../sda2
 


Mais c'est vrai que cela ne concerne que les partitions.

Sinon il y a aussi :

ls -l /dev/disk/by-id


total 0
lrwxrwxrwx 1 root root  9 17 sept. 16:05 ata-Hitachi_HTS543216L9A300_081115FB2200LCHYW35B -> ../../sda
lrwxrwxrwx 1 root root 10 20 sept. 17:05 ata-Hitachi_HTS543216L9A300_081115FB2200LCHYW35B-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 17 sept. 16:05 ata-Hitachi_HTS543216L9A300_081115FB2200LCHYW35B-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 17 sept. 16:05 ata-Hitachi_HTS543216L9A300_081115FB2200LCHYW35B-part3 -> ../../sda3
lrwxrwxrwx 1 root root  9 17 sept. 16:05 ata-ST9250311CS_6VCR5ZAX -> ../../sdb
lrwxrwxrwx 1 root root 10 17 sept. 16:05 ata-ST9250311CS_6VCR5ZAX-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 17 sept. 16:05 wwn-0x5000c50036b1219c -> ../../sdb
lrwxrwxrwx 1 root root 10 17 sept. 16:05 wwn-0x5000c50036b1219c-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 17 sept. 16:05 wwn-0x5000cca561dbac01 -> ../../sda
lrwxrwxrwx 1 root root 10 20 sept. 17:05 wwn-0x5000cca561dbac01-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 17 sept. 16:05 wwn-0x5000cca561dbac01-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 17 sept. 16:05 wwn-0x5000cca561dbac01-part3 -> ../../sda3



Edit:
Je rappelle que l'UUID est conseillé pour identifier un disque/partition dans /etc/fstab

Dernière modification par Tawal (20-09-2024 20:03:45)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#15 21-09-2024 12:21:02

saitama-san
Membre
Inscription : 28-07-2019

Re : Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC

@Tawal : je vois pas l’intérêt de passer par des uuid hmm
si tu rajoutes un disque, tu modifies ton script ? si je comprends bien l'idée, il est plus judicieux de chercher tous les disques.

à mon avis pour jouer avec smartctl faut être root, dans ce cas blkid a peut être des options pour filtrer.

Hors ligne

Pied de page des forums