Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/02/2025, à 01:29

iznobe

[ resolu ] Amelioration mini-script fsck complet de l' ordi

Bonjour , j ' ai commencé a ecrire quelques lignes pour un script pour faire un fsck .

d' une part je voudrais l' ameliorer , tout en gardant de la lisibilité et de la facilité de compréhension tongue , et surtout , il me manque la derniere partie , pour laquelle je n' ai pas encore trouvé de solution " simple " . je fais donc appel a ceux qui savent meiux gerer que moi .

Voici le script :

iznobe@iznobe-PC:~$ cat Scripts/fsck-total.sh 
#!/bin/bash

sudo service nfs-kernel-server stop;

for m in $(findmnt -a --noheadings --output source,fstype | grep ext | cut -d ' ' -f 1); do
sudo umount -v $m;
done

for f in $(lsblk -fe7 -l -o name,fstype | grep ext | cut -d ' ' -f 1); do
sudo fsck -fyv /dev/$f;
echo "";
echo " OK --------------------- OK ";
echo "";
done

# comment remonté les systemes de fichiers demontés dans la 1ere boucle ?

sudo service nfs-kernel-server start
iznobe@iznobe-PC:~$

j ' avais pensé a faire :

for m in $(findmnt -a --noheadings --output source,fstype | grep ext | cut -d ' ' -f 1); do
sudo umount -v $m;
remount=$m++,;
# ou peut etre :
remount++,=$m; 
Afin d' obtenir quelquechose du genre : $=/dev/sda1,/dev/sda2,  etc ...
done

# fsck

# " decoupage " de la variable remount , puis :
for m in $remount; do
sudo mount -v $m;
done

mais , bien sur , ca ne fonctionne pas lol

Edit : fini par trouvé :

#!/bin/bash

sudo service nfs-kernel-server stop;
remount="";
for m in $(findmnt -a --noheadings --output source,fstype | grep ext | cut -d ' ' -f 1); do
sudo umount -v $m;
remount=$remount$m" ";
echo "remount ="$remount;
done

il ne reste donc plus que le " decoupage " de la variable a faire avant de faire le mount .

ha , ben apres test , meme pas , ca marche tout seul tongue

------------------------------------------------------------------------------

donc , voici le script a ameliorer le cas echeant :

#!/bin/bash

sudo service nfs-kernel-server stop;
remount=""; # utile cette declaration ?
for m in $(findmnt -a --noheadings --output source,fstype | grep ext | cut -d ' ' -f 1); do
    sudo umount -v $m;
    remount=$remount$m" ";
done

for f in $(lsblk -fe7 -l -o name,fstype | grep ext | cut -d ' ' -f 1); do
    sudo fsck -fyv /dev/$f;
    echo "";
    echo " OK --------------------- OK ";
    echo "";
done

for m in $remount; do
    sudo mount -v $m;
done

sudo service nfs-kernel-server start

Dernière modification par iznobe (Le 25/02/2025, à 01:20)

Hors ligne

#2 Le 22/02/2025, à 05:17

Watael

Re : [ resolu ] Amelioration mini-script fsck complet de l' ordi

plus d'un sudo dans un script indique que le script doit être exécutable par root seulement, et c'est le script que tu exécutes avec sudo

comment se fait-il que tu sois encore avec service et pas systemd ?

tu as l'intention d'exécuter ce script sur ton système en cours de fonctionnement ?! parce que, là, toutes tes partitions extN vont être démontées, et ton système va cesser de fonctionner. hmm

et, non, remount="" n'est pas utile, et tu pourrais faire simplement remount+=$m.
Mais ce n'est pas la meilleure des pratiques alors que bash peut utiliser des tableaux : toRemount+=( "$m" ), puis for m in "${toRemount[@]}"...
pareil pour findmnt et lsblk, j'enverrais ça dans un tableau : readarray -t < <(findmnt/lsblk...); for i in "${MAPFILE[@]}"...


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 22/02/2025, à 11:30

iznobe

Re : [ resolu ] Amelioration mini-script fsck complet de l' ordi

Salut Watael et merci pour tes clarifications / explications .

j ' ai un niveau tres basique , je ne sais pas gerer les tableaux , ni les mettre en place , pas en bash en tout  cas .

Pour service , je ne sais pas , les 2 doivent fonctionner je suppose puisque pas d' erreur .
il vaudrait mieux utiliser

sudo systemctl start nfs-server

à la place ?

du  coup :

#!/bin/bash

sudo systemctl stop nfs-server;

for m in $(findmnt -a --noheadings --output source,fstype | grep ext | cut -d ' ' -f 1); do
    sudo umount -v $m;
    remount+=$m" ";
done

for f in $(lsblk -fe7 -l -o name,fstype | grep ext | cut -d ' ' -f 1); do
    sudo fsck -fyv /dev/$f;
    echo "";
    echo " OK --------------------- OK ";
    echo "";
done

for m in $remount; do
    sudo mount -v $m;
done

sudo systemctl start nfs-server

Hors ligne

#4 Le 22/02/2025, à 18:14

lynn

Re : [ resolu ] Amelioration mini-script fsck complet de l' ordi

Bonjour,

Pas de sudo dans un script comme l'a rappelé watael... Si les commandes de ton script sont des commandes à lancer en admin, c'est le script lui même qui doit être lancé en admin !


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#5 Le 22/02/2025, à 19:04

Watael

Re : [ resolu ] Amelioration mini-script fsck complet de l' ordi

« [...] Quand il y en a un, ça va.C'est quand il y en a beaucoup qu'il y a [un] problème. » Brice de N...euilly.  big_smile

Dernière modification par Watael (Le 22/02/2025, à 19:05)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 25/02/2025, à 01:20

iznobe

Re : [ resolu ] Amelioration mini-script fsck complet de l' ordi

Bonsoir , pour le momen , j' ai donc le script suivant qui fonctionne plutot bien , sans soucis particulier . juste un avertissement pour la partition " / " qu ' il ne peut evidemment pas demonté . comme pour certaines autres comme home ou les partitions data si il y en a.
il fait le taff et remonte le tout apres wink

Merci à tous .

Dernière modification par iznobe (Le 25/02/2025, à 01:22)

Hors ligne

#7 Le 25/02/2025, à 13:06

RaphaelG

Re : [ resolu ] Amelioration mini-script fsck complet de l' ordi

Es tu sûr que l'arrêt du service nfs-server est nécessaire ?
Pour moi, ce service est lié au partage de fichier avec le protocole Network File System de feu Sun Microsystems. Aucun rapport avec le montage ou le démontage de  de partitions de disques physiques.
Peut être que la machine sur laquelle du lances ton script est elle même serveur NFS ?

Et pourquoi tous ces ';' en fin de ligne ?

Dernière modification par RaphaelG (Le 25/02/2025, à 13:12)

Hors ligne

#8 Le 25/02/2025, à 13:19

iznobe

Re : [ resolu ] Amelioration mini-script fsck complet de l' ordi

Salut ,

Peut être que la machine sur laquelle du lances ton script est elle même serveur NFS ?

oui et les partitions a checker sont partagées via NFS justement .

Et pourquoi tous ces ';' en fin de ligne ?

juste une habitude. ca ne sert effectivement pas a grand chose en bash puisque c' est automatique si une seule instructions dans la ligne .

Hors ligne