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 Aujourd'hui à 00:29

iznobe

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 (Aujourd'hui à 01:26)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#2 Aujourd'hui à 04:17

Watael

Re : 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 Aujourd'hui à 10:30

iznobe

Re : 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
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#4 Aujourd'hui à 17:14

lynn

Re : 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 Aujourd'hui à 18:04

Watael

Re : 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 (Aujourd'hui à 18:05)


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

Hors ligne