#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 , 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
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
------------------------------------------------------------------------------
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)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
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.
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
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
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.
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
Merci à tous .
Dernière modification par iznobe (Le 25/02/2025, à 01:22)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
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 .
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne