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).

#26 12-05-2021 13:08:55

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Herve5 a écrit :

... sans pour autant trouver ce qui les fait gonfler ...

Ben faut les inspecter et aussi inspecter le fichier log sauvegardé auparavant wink

Pour ce qui est de la surveillance, je parle d'outils venant de la distribution, pas de scripts extérieurs, au pire je peux m'en faire un.

Edit: d'ailleurs voici ce que j'ai en ce moment, mais j'attends de voir un si outil adéquat existe.

2 limites : une medium et une critique
Sépare les fichiers de système "système" et "utilisateur" (une différence entre /, /var ... et /home, /media/...)
Donc 4 valeurs de réglages au total possible : 2 pour chaque "type" de système de fichier.
Et trie la sortie selon l'urgence (critique puis sys/user, medium puis sys/user)

#!/bin/bash

### Limites en pourcentage alerte et critique (système et non-système) #######
lim_sys="60"
lim_user="55"
crit_sys="61"
crit_user="64"


### Définition des disques systèmes
sys="^/$|^/usr$|^/var$|^/var/log$"

gawk -vr_s="$sys" -vl_s="$lim_sys" -vc_s=$"$crit_sys" -vl_u="$lim_user" -vc_u="$crit_user" '
    NR>1 {
        sub(/%$/,"",$2)
        aUsed[$1]=$2
        aFree[$1]=$3
        if (($2 > c_s) && ($1 ~ r_s)) aUrg[$1]=++i
        else if (($2 > c_u) && ($1 !~ r_s)) {
            j+=10**2
            aUrg[$1]=j
        }else if (($2 > l_s) && ($1 ~ r_s)) {
             k+=10**3
             aUrg[$1]=k
        }else if (($2 > l_u) && ($1 !~ r_s)) {
             l+=10**4
             aUrg[$1]=l
        }
    }
    END{
        PROCINFO["sorted_in"]="@val_num_asc"
        for (x in aUrg) {
            if (aUrg[x]<10**2) printf("[urg - sys] %-30s %3d%% %s\n",x,aUsed[x],aFree[x])
            else if (aUrg[x]<10**3) printf("[urg - dat] %-30s %3d%% %s\n",x,aUsed[x],aFree[x])
            else if (aUrg[x]<10**4) printf("[med - sys] %-30s %3d%% %s\n",x,aUsed[x],aFree[x])
            else printf("[med - dat] %-30s %3d%% %s\n",x,aUsed[x],aFree[x])
        }
    }
'
< <(df -x tmpfs -x devtmpfs -x cdrom -BM --sync --output=target,pcent,avail)


Un exemple de retour (avec des valeurs pour en avoir un wink):

$ ./surv_fs
[urg - sys] /                               62% 7223M
[urg - dat] /home                           65% 44062M
[med - dat] /media/Datas_250Go              58% 95676M

Dans l'ordre, on a : Le type d'alerte, le système de fichier concerné, le pourcentage utilisé sur ce système et la taille restante (espace libre) en MiB.
PS: c'est un 1er jet, c'est largement améliorable wink

Dernière modification par Tawal (12-05-2021 16:44:37)


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

#27 12-05-2021 18:39:22

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Tawal a écrit :

jpt a écrit :

    Oui, je sais, il y a plein d'outils qui le font, et on voit où ça mène…

Lesquels ?

https://www.debugpoint.com/2018/07/apps … untu-mint/

Dernière modification par jpt (12-05-2021 18:40:28)


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#28 13-05-2021 09:51:28

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

jpt a écrit :

On implémente ça dans le noyau, à charge pour les superbes applis graphiques d'aller récupérer l'info et faire ce qu'il faut avec


C'est ce que qui se passe, alors de quoi te plains-tu ?


Il vaut mieux montrer que raconter.

Hors ligne

#29 13-05-2021 17:52:13

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

raleur a écrit :

C'est ce que qui se passe, alors de quoi te plains-tu ?

jpt a écrit :

As-tu remarqué que dans ta bagnole, quand le niveau de mol' descend trop bas, y a une loupiote qui te le signale sans que tu n'aies rien configuré ?

En gros, quand on a le nez dans du traitement d'image (ou de son, ou d'autre chose), ça serait cool que s'il y a un espace disque qui faiblit, un truc nous l'indique sans que l'on ait besoin de lancer une appli supplémentaire pour savoir où on en est.


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#30 13-05-2021 19:40:49

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

J'ai peut-être mal compris le sens de la phrase que j'ai citée. Tu te plains que c'est comme ça et que ça ne devrait pas, ou bien tu te plains que ça devrait être comme ça mais que ça ne l'est pas, ou encore tu ne te plains pas que c'est comme ça (alors pourquoi cette remarque) ?

Il vaut mieux montrer que raconter.

Hors ligne

#31 14-05-2021 08:51:20

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Je crois que jpt veut dire qu'il est regrettable qu'il n'y ait pas de base quelque chose pour signaler un espace disque faible.
En gros, ça reste à l'utilisateur de surveiller.

Je verrais bien un truc un peu comme le "power-management" qui indique que la batterie est faible et qu'une action est requise (ou sera effectuée automatiquement).
Si tu remplaces la batterie par l'espace libre par disque/partition ...
.

Dernière modification par Tawal (14-05-2021 09:00:37)


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

#32 14-05-2021 08:55:08

Herve5
Adhérent(e)
Lieu : mi à Toulouse mi Paris, France
Distrib. : Debian 6.1.0-13 bullseye
Noyau : Linux 6.1.0-13-amd64
(G)UI : xfce 4.18
Inscription : 02-03-2019

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Tawal a écrit :

Je crois que jpt veut dire qu'il est regrettable qu'il n'y ait pas de base quelque chose pour signaler un espace disque faible.
En gros, ça reste à l'utilisateur de surveiller.

Oui, et j'approuve big_smile -il me semble avoir vu ça sur macintosh (depuis longtemps), et, peut-être même, honte des hontes, sur Ubuntu...


--
Hervé S.
Lenovo Thinkpad P53 / Debian 12 Xfce ; Tuxedo InfinityBook / Ubuntu

Hors ligne

#33 14-05-2021 09:05:11

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Bonjour,

Tawal a écrit :

Je crois que jpt veut dire qu'il est regrettable qu'il n'y ait pas de base quelque chose pour signaler un espace disque faible.
En gros, ça reste à l'utilisateur de surveiller.

Je verrais bien un truc un peu comme le "power-management" qui indique que la batterie est faible et qu'une action est requise (ou sera effectuée automatiquement).
Si tu remplaces la batterie par l'espace libre par disque/partition ...
.

EX-AC-TE-MENT !


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#34 14-05-2021 13:15:09

Herve5
Adhérent(e)
Lieu : mi à Toulouse mi Paris, France
Distrib. : Debian 6.1.0-13 bullseye
Noyau : Linux 6.1.0-13-amd64
(G)UI : xfce 4.18
Inscription : 02-03-2019

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Les scripts que j'ai indiqué (et pas essayé) font déjà quelque chose de plus que l'analyse : on les lance une fois, ils tournent tous les x et ils envoient une alerte par mail en cas de souci. Je ne sais pas si on peut remplacer ça facilement par "affiche une boîte de dialogue par-dessus tous les écrans en grognant" (ou bien, rentrer le message dans le truc qui affiche les messages. Mais si quelqu'un se lance, je suis preneur!

--
Hervé S.
Lenovo Thinkpad P53 / Debian 12 Xfce ; Tuxedo InfinityBook / Ubuntu

Hors ligne

#35 14-05-2021 14:55:43

Stellal
Banni(e)
Distrib. : DEBIAN 11 (Bullseye)
Noyau : Linux 5.10.0-28-amd64
(G)UI : MATE 1.24.1
Inscription : 25-04-2021

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

@Herve5
Je suis preneur.
Je vais tester mon matériel sous Bullseye dans une partition de 60G.

Je veux bien intégrer ton script mais il faut me dire comment faire.
Si tout se passe bien, j'essayerai de saturer la partition pour tester.

Hors ligne

#36 14-05-2021 16:34:25

Herve5
Adhérent(e)
Lieu : mi à Toulouse mi Paris, France
Distrib. : Debian 6.1.0-13 bullseye
Noyau : Linux 6.1.0-13-amd64
(G)UI : xfce 4.18
Inscription : 02-03-2019

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Stellal a écrit :

Je veux bien intégrer ton script mais il faut me dire comment faire.


@Stellal ce n'est pas mon script, bien au contraire. Dans mon post plus haut ici (faut-il encore aller le lire) j'ai listé plusieurs sources possibles, que je n'ai pas testées moi-même, c'est tout.
Actuellement je n'ai pas vraiment le temps d'en faire plus.
Je signale par contre que pour pratiquement chacun d'entre eux on peut tester facilement le niveau d'alerte, simplement en changeant le coefficient de remplissage critique, qui est parfaitement explicite et visible dans le script. Par exemple, si on a un disque plein à 25% on peut très bien éditer le script en lui demandant de réagir à 26%. C'est pas ça, le difficile.
Le difficile, c'est de
- vérifier que le script retenu n'a pas dix ans d'âge
- qu'il est prévu pour, ou compatible de, Debian
- que sa méthode de lancement est compatible de Debian et facile à implanter
- que sa méthode d'alerte fonctionne (genre, il envoie un mail, mais en utilisant quel paquet pour ça...)
- et, idéalement, le modifier pour envoyer directement une alarme à l'écran, plutôt que juste un mail.
Bref, il y a plein de sites qui montrent plein de scripts qui fonctionnent (pour eux) mais il reste du travail.

Dernière modification par Herve5 (14-05-2021 16:35:26)


--
Hervé S.
Lenovo Thinkpad P53 / Debian 12 Xfce ; Tuxedo InfinityBook / Ubuntu

Hors ligne

#37 14-05-2021 19:00:20

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Re,

Voici un script qui te "placarde" une pop-up à l'écran.
J'ai repris le script gawk du message #26 que j'ai étendu.
Toujours 2 types d'alertes : médium et urgence.
Possibilité d'annuler/remettre les alertes "médium".
Pour le mettre en place, il faut lui donner les droits d'exécution et installer une crontab appelant le script avec la fréquence désirée.

#!/bin/bash

### Limites en pourcentage alerte et critique (système et non-système) #######
lim_sys=50
crit_sys=60

lim_user=55
crit_user=60

### Définition des disques "système"
tSys=( "/"   "/usr"   "/var"   "/var/log"   "/var/www" )


### Génération de la regex r_sys
r_sys=""
for i in ${!tSys[@]}
do
    r_sys="$r_sys|^${tSys[$i]}$"
done
r_sys="${r_sys#|}"

### Fichier temporaire - Sauvegarde du choix de désactivation des alertes médium
tmp_fich="$(find /tmp -maxdepth 1 -type f -name "surv_fs.*")"
if [ ! "$tmp_fich" ]
then
    tmp_fich=$(mktemp /tmp/surv_fs.XXXXXX)
    c=0
else
    c=$(cat "$tmp_fich")
fi

if [ $c -eq 0 ]
then
    bouton="Désactiver les alertes Médium"
else
    bouton="Ré-activer les alertes Médium"
fi

### Check des espaces disques et affichage alerte selon
gawk -vr_s="$r_sys" -vl_s="$lim_sys" -vc_s=$"$crit_sys" -vl_u="$lim_user" -vc_u="$crit_user" -vc="$c" '
    NR>1 {
        sub(/%$/,"",$3)
        aMount[$1]=$2
        aUsed[$1]=$3
        aFree[$1]=$4
        if (($3 > c_s) && ($2 ~ r_s)) aUrg[$1]=++i
        else if (($3 > c_u) && ($2 !~ r_s)) {
            j+=10**3
            aUrg[$1]=j
        }else if (($3 > l_s) && ($2 ~ r_s)) {
             k+=10**5
             aUrg[$1]=k
        }else if (($3 > l_u) && ($2 !~ r_s)) {
             l+=10**7
             aUrg[$1]=l
        }
    }
    END{
        PROCINFO["sorted_in"]="@val_num_asc"
        for (x in aUrg) {
            if (aUrg[x]<10**5)
                printf("URGENCE\0%s\0%s\0%d%%\0%s\0",x,aMount[x],aUsed[x],aFree[x])
            else if (c==0)
                printf("Médium\0%s\0%s\0%d%%\0%s\0",x,aMount[x],aUsed[x],aFree[x])
        }
    }
'
< <(df -x tmpfs -x devtmpfs -x cdrom -BM --sync --output=source,target,pcent,avail) | xargs -0 -r zenity --list \
    --title "Alerte Disques" \
    --text "" \
    --width 600 \
    --ok-label "Fermer" \
    --cancel-label "$bouton" \
    --column "Sévérité" --column "Disque" --column "Point de Montage" --column "% Utilisé" --column "Espace Libre"

r=$?

### Gestion du choix utilisateur
if [ $r -gt 0 ]
then
    c=$(( c-r ))
    c=${c#-}
fi
echo $c > "$tmp_fich"

exit


30oMhf3l.png
d7JUMNUl.png avec les valeurs postées dans le script.

Edit PS:
Pour pouvoir faire afficher un zenity (ou autre appli graphique) depuis cron, il faut exporter cette variable :
DISPLAY=:0.0
à ajuster selon le cas.
il suffit de placer DISPLAY=:0.0 devant la commande nécessitant cette variable, par exemple :

DISPLAY=:0.0 /le/chemin/de/l_executable/graphique



Edit2:
Ça nécessite d'installer gawk (=GNU awk).

Edit3:
Mise à jour du script

Dernière modification par Tawal (15-05-2021 16:10:44)


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

#38 15-05-2021 08:48:10

jarek
Membre
Lieu : Haute Loire
Distrib. : bookworm
Noyau : linux 6.1.x
(G)UI : xfce4 - lightdm
Inscription : 24-06-2014

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Tawal a écrit :

Je crois que jpt veut dire qu'il est regrettable qu'il n'y ait pas de base quelque chose pour signaler un espace disque faible.
En gros, ça reste à l'utilisateur de surveiller.


Moins y'a d'applications installées d'office et plus c'est mieux.
Et je me trompe en disant que ce qui serait proposé ne plairait pas à tout le mode ?
Et que certains trouveraient lamentable et-anti-esprit-debian-libre d'imposer des gadgets.


Україна Ukraina Ukraina Ukrajna Украйна Ucraina Ukrajina

Hors ligne

#39 15-05-2021 09:15:36

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Oui jarek, je suis ton idée.

Je suis d'accord avec toi sur le "moins il y en a mieux c'est".

Mais, quand même, un disque système plein est critique pour le système, il va planter.
Donc, je reste sur mon propos qui dit que c'est dommageable que le système ne soit pas protégé contre ça.

Ce "gadget" pourrait très bien être proposé par l'équipe Debian à installer selon le choix de l'utilisateur (ça existe peut-être déjà, mais pour l'instant rien trouvé).
En plus d'une alerte, des actions pourraient être prises selon le cas.
Par exemple, un log qui gonfle à cause d'un service/logiciel qui spamme d'erreurs, pourrait amener à un arrêt temporaire du système de loggage et ainsi éviter l'arrêt du système (car ça laisserai le temps à l'user prévenu d'agir).

Bref, c'est un sujet qui se discute sur son utilité, son implémentation et sur les actions à tenir ...
.

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

#40 15-05-2021 10:17:14

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Tawal a écrit :


Mais, quand même, un disque système plein est critique pour le système, il va planter.
Donc, je reste sur mon propos qui dit que c'est dommageable que le système ne soit pas protégé contre ça.

Tout comme une bagnole avec le réservoir vide va planter, or on n'a pas toujours le regard rivé à la jauge, donc merci les constructeurs d'avoir rajouté une loupiote pour nous informer à temps.

Jarek, on n'est pas au même niveau d'implémentation et Tawal l'a très bien exprimé, n'oublions jamais les logs qui grossissent sans nous prévenir, jusqu'à ce qu'il soit trop tard.

Après tout, quand le système n'a plus de mémoire libre et que l'utilisateur veut lancer un autre programme, le système va swapper pour le satisfaire, hé bien là c'est un peu le même principe, sauf qu'il ne sait pas ce qu'il faut faire, donc il nous en informe, à nous de prendre ensuite les bonnes décisions.

M'en vais tester ton script, étant entendu qu'en première lecture il s'appuie sur df et que ce n'est peut-être pas le meilleur choix, celui-ci s'appuyant sur les montages de systemd, qui sont loin d'être au top en cas de plusieurs partitions sur des disques différents, je l'ai montré en son temps.


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#41 15-05-2021 10:25:06

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

jtp a écrit :

M'en vais tester ton script, étant entendu qu'en première lecture il s'appuie sur df et que ce n'est peut-être pas le meilleur choix, celui-ci s'appuyant sur les montages de systemd, qui sont loin d'être au top en cas de plusieurs partitions sur des disques différents, je l'ai montré en son temps.


Je l'ai mis à jour à l'instant (un dysfonctionnement sur l'activation/désactivation des alertes médium).
Merci de cette info sur df

Quel outil serait le mieux adapté pour lire l'état des différents disques lsblk, df, findmnt, ... ?

Edit PS : Description script
Le script s'appuie sur les données de df.
Il y a un tri de ces données (gawk) selon l'urgence et un sous-tri selon si le disque est système ou data.
Les niveaux d'alertes sont en % d'utilisation (peut-être à voir pour mettre plutôt des valeurs en MiB pour éviter une fluctuation des marges selon la taille des différents disques).
Ensuite, il y affichage par zenity des alertes détectées.
Un petit plus (éviter le spam de la fenêtre pour les alertes médium), un switch pour annuler/remettre en vigueur ces alertes médium.


Edit: Réflexion ...
Bon déjà, je trouve ça moche (le script).
Ensuite, faut-il inclure les disques "data" ? Mais quid d'un /home plein qui bloque la session X ?
Puis, pour inclure des actions prédéfinies, ça dépasse les capacités d'un simple script et demande certainement une implémentation plus profonde.
Bref, un développement sérieux quoi.

Dernière modification par Tawal (15-05-2021 11:16:52)


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

#42 15-05-2021 11:12:09

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Tawal a écrit :

Quel outil serait le mieux adapté pour lire l'état des différents disques ? lsblk df findmnt ...

Pour ce point, je ne sais pas trop, là maintenant.
Si je devais faire (et je n'ai absolument pas le temps, je suis complètement sur autre chose), je fouillerais dans /sys/block/sdX/sdXY où on trouve une entrée "size" mais je ne sais pas où trouver "free, total, etc.". Par contre on y trouve les identifiants système (dans "dev", à voir avec F3 sous mc), peut-être utiles pour jouer avec le binaire stat.
Ce n'est pas simple...

Le prog : je l'ai testé dans une machine virtuelle avec un seul dd de 11 G, (df -h --> 11G  6,6G 3,7G 65%) et ça me remonte une alerte de sévérité URGENCE alors qu'il n'y a que 65 % d'utilisé. À creuser, je n'ai pas fouillé. J'ai fouillé et j'ai modifié les valeurs de lim_sys à 85 et crit_sys à 95, j'ai relancé et plus rien ne s'affiche. Par-fait ! À l'occasion je ferai un test en chargeant la mule, histoire de vérifier.

Un truc qui me chagrine, c'est l'unité utilisée dans la colonne "Espace libre" où je lis 3750M. Est-ce qu'en cas de gros disque ça bascule tout seul sur les unités G et/ou T ? Pareil, je n'ai pas fouillé.

Un regret : la chose cachée en arrière-plan est mal identifiée par "ps ax" : je ne vois que "bash", pas très parlant. Une idée pour l'avoir plus causant ?


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#43 15-05-2021 11:37:20

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

jpt a écrit :

Un truc qui me chagrine, c'est l'unité utilisée dans la colonne "Espace libre" où je lis 3750M. Est-ce qu'en cas de gros disque ça bascule tout seul sur les unités G et/ou T ? Pareil, je n'ai pas fouillé.

Non, rien de tout ça, c'est du vite fait.
Mais ça reste possible avec transformation pour une lecture humaine (puissance de 1000).
Une usine à gaz pour un "gadget" ... ?

jpt a écrit :

Un regret : la chose cachée en arrière-plan est mal identifiée par "ps ax" : je ne vois que "bash", pas très parlant. Une idée pour l'avoir plus causant ?

Pour mieux l'identifier, il te faudrait placer le script (avec les droits d'exécution) dans un dossier du PATH ainsi tu verrais apparaître le nom du script dans ps.

Edit:
Comment est lancé le script chez toi ?
Il faut le placer dans une crontab  du style :

0 */1 * * *     DISPLAY=:0.0 /chemin/valide/du/PATH/script

qui lance le script toute les heures à 0 minute

Dernière modification par Tawal (15-05-2021 11:52:54)


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

#44 15-05-2021 12:08:04

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Tawal a écrit :

Il faut le placer dans une crontab

Ah ah ! Je n'ai pas du tout pensé à tout ça, j'ai la tête complètement ailleurs, alors vit' fait, lancer le script toutes les heures àmha c'est une très mauvaise idée car en moins d'une heure on peut très bien saturer complètement un espace disque libre (je viens de tester en recopiant /var dans /tmp 3 fois, je suis à 90 % d'occupation)…

Dans mon esprit c'est un truc qui surveille toutes les secondes, un peu comme les températures.

Et, oui, le fichier je l'ai posé sur le bureau, lui ai mis les droits et dans une console ./le_script et roule !
Et comme je voyais la fenêtre s'afficher, je n'ai pas cherché plus loin (rappel : j'ai la tête ailleurs, désolé -- je ne suis surement pas le meilleur béta-testeur pour ton truc, en ce moment).

PS : pour moi ce n'est pas un gadget, c'est une nécessité !
Yakà voir le nombre de posts "au secours j'ai plus d'espace libre".


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#45 15-05-2021 16:23:00

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Une autre version :
df remplacé par lsblk.
Une seule valeur critique (1 pour les disques système et 1 autre pour les disques "datas").
Check des états toutes les secondes.
Un bouton pour fermer la boite, un autre pour annuler les alertes (sinon spam de fenêtre !).
Une conversion de l'espace libre en "lecture humaine" (1kB=1000 octets, 1MB=1000kB ...).
Il suffit de lancer le script au démarrage (système, session à voir selon chacun).

#!/bin/bash

### Limites en pourcentage alerte et critique (système et non-système) #######
crit_sys=95

crit_user=98

tSys=( "/"   "/usr"   "/var"   "/var/log"   "/var/www" )


### Génération de la regex r_sys
r_sys=""
for i in ${!tSys[@]}
do
    r_sys="$r_sys|^${tSys[$i]}$"
done
r_sys="${r_sys#|}"


### Check des espaces disques et affichage alerte selon
while true
do
    gawk -vr_s="$r_sys" -vc_s=$"$crit_sys" -vc_u="$crit_user" '
        function b2h(mem,    x) {
            m=mem
            while(int(m/=kB))x++
            return x
        }

        BEGIN{
            kB=1000
            exp2unit[1]="kB"; exp2unit[2]="MB"; exp2unit[3]="GB"
        }

        END{
            PROCINFO["sorted_in"]="@val_num_asc"
            for (x in aUrg) {
                xp=b2h(aFree[x])
                printf("%s\0%s\0%s\0%d%%\0%0.f %s\0", x, aMount[x], aLbl[x], aPerc[x], aFree[x]/kB**xp, exp2unit[xp])
            }
        }

        $2 {
            if (($1 ~ /^sd/) && ($2 !~ /swap/)) {
                sub(/%$/,"",$5)
                aUsed[$1]=$3; aFree[$1]=$4; aPerc[$1]=$5; aMount[$1]=$6; aLbl[$1]=$7
                if (($5 > c_s) && ($6 ~ r_s)) aUrg[$1]=++i
                else if (($5 > c_u) && ($6 !~ r_s)) {
                    j+=10**2
                    aUrg[$1]=j
                }
            }
        }
    '
< <(lsblk -bflno NAME,FSTYPE,FSUSED,FSAVAIL,FSUSE%,MOUNTPOINT,LABEL) | xargs -0 -r zenity --list \
        --title "Alerte Disques" \
        --text "" \
        --width 600 \
        --ok-label "Fermer" \
        --cancel-label "Annuler les Alertes" \
        --column "Nom" --column "Point de Montage" --column "Étiquette" --column "% Utilisé" --column "Espace Libre" || break

    sleep 1
done

exit


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

#46 15-05-2021 22:42:55

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Tawal a écrit :

Je crois que jpt veut dire qu'il est regrettable qu'il n'y ait pas de base quelque chose pour signaler un espace disque faible.


C'est un point de vue (que je ne partage pas).
Encore faut-il définir "de base", et de quelle façon "signaler".
Dans le système de base, en console ? Dans un environnement de bureau ? lequel ?
Signaler à qui ? A l'utilisateur ? Pourquoi faire s'il n'est pas administrateur ? A l'administrateur ? De quelle façon ? Par mail ? Encore faut-il qu'il lise ses mails.
Et comment définis-tu "espace disque faible" ? Quel espace disque ? Si l'arborescence est divisée en plusieurs systèmes de fichiers (/, /home, /var...) lesquels doit-on prendre en compte ? Quel seuil pour déclencher l'alerte ? Mon système a actuellement 200 Mo d'espace libre, je ne considère pas du tout que c'est faible, je peut très bien travailler avec et je n'apprécierais pas du tout qu'une alerte d'espace disque faible se manifeste toutes les minutes.
Comme souvent le diable se cache dans les détails.

Et par-dessus tout, quel rapport avec "On implémente ça dans le noyau, à charge pour les superbes applis graphiques d'aller récupérer l'info et faire ce qu'il faut avec" ?

Tawal a écrit :

un disque système plein est critique pour le système


Et l'utilisateur ne peut rien y faire. C'est à l'administrateur d'y remédier.

Tawal a écrit :

c'est dommageable que le système ne soit pas protégé contre ça


Il peut l'être par construction. En séparant les parties de l'arborescence qui sont susceptibles de grossir hors de contrôle, en instaurant des quotas...

jpt a écrit :

quand le système n'a plus de mémoire libre et que l'utilisateur veut lancer un autre programme, le système va swapper


Non, pas forcément. Il peut aussi réduire ses caches pour libérer de la mémoire.

jpt a écrit :

là c'est un peu le même principe,


Non, pas du tout. Le fait de swapper ou de réduire les caches est un fonctionnement normal. Ne plus avoir d'espace disque libre n'est pas un fonctionnement normal. Il faudrait plutôt comparer cela avec ne plus avoir de mémoire libre du tout (RAM et swap).

Tawal a écrit :

Quel outil serait le mieux adapté pour lire l'état des différents disques


L'état des disques n'a aucun rapport avec l'espace libre dans le système de fichiers.

jpt a écrit :

e fouillerais dans /sys/block/sdX/sdXY où on trouve une entrée "size" mais je ne sais pas où trouver "free, total, etc.".


Normal. Ces informations concernent un périphérique bloc, pas un système de fichiers.

jpt a écrit :

df n'est peut-être pas le meilleur choix, celui-ci s'appuyant sur les montages de systemd, qui sont loin d'être au top en cas de plusieurs partitions sur des disques différents, je l'ai montré en son temps


df n'a rien à voir avec systemd, il montre les systèmes de fichiers montés que quelque façon que ce soit. On sait seulement qu'il n'est pas fiable avec certains systèmes de fichiers comme btrfs (il faut dire que la notion d'espace libre est assez flottante dans btrfs).


Il vaut mieux montrer que raconter.

Hors ligne

#47 16-05-2021 09:03:12

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

En voilà une réflexion juste et posée !

raleur a écrit :

C'est un point de vue (que je ne partage pas).
Encore faut-il définir "de base", et de quelle façon "signaler".
Dans le système de base, en console ? Dans un environnement de bureau ? lequel ?
Signaler à qui ? A l'utilisateur ? Pourquoi faire s'il n'est pas administrateur ? A l'administrateur ? De quelle façon ? Par mail ? Encore faut-il qu'il lise ses mails.
Et comment définis-tu "espace disque faible" ? Quel espace disque ? Si l'arborescence est divisée en plusieurs systèmes de fichiers (/, /home, /var...) lesquels doit-on prendre en compte ? Quel seuil pour déclencher l'alerte ? Mon système a actuellement 200 Mo d'espace libre, je ne considère pas du tout que c'est faible, je peut très bien travailler avec et je n'apprécierais pas du tout qu'une alerte d'espace disque faible se manifeste toutes les minutes.
Comme souvent le diable se cache dans les détails.


De base, je verrais un paquet (à installer ou pas).
De quelle façon prévenir (et qui ?) ? C'est un problème en effet.
Une fenêtre, je trouve ça grossier et intrusif voire vraiment dérangeant comme tu le soulignes. Mais avec le choix d'annuler l'alerte ...
Et cette fenêtre/notification ne s'adresse qu'à l'utilisateur en cours ==> aucune certitude que l'alerte soit remontée à l'administrateur.

Pour l'espace disque faible, ça revient un peu aux quotas que tu cites après.
Je ne vois aucun souci à utiliser des valeurs par défaut qui soient "customisables" par l'administrateur. Une configuration selon les besoins réels.

Un "check" de l'espace libre pour chaque point de montage "faisant partie" du système. Pareil, une configuration possible ...

raleur a écrit :

tawal a écrit :

c'est dommageable que le système ne soit pas protégé contre ça


Il peut l'être par construction. En séparant les parties de l'arborescence qui sont susceptibles de grossir hors de contrôle, en instaurant des quotas...

Là, tu mets le doigt sur la pertinence d'un tel service d'alerte.
S'il est connu que certains répertoires du système peuvent "grossir hors de contrôle", pourquoi ne pas proposer un service qui gère ce souci ?

Ensuite, je me suis mal exprimé sur "l'état des disques".
J'entendais évidemment par là le niveau de remplissage.

Enfin, ce qui est sûr, c'est que mon script n'est pas une solution du tout. J'ai juste répondu à la demande d'Herve5 qui voulait une fenêtre pour le prévenir.
En plus d'être moche, je ne suis vraiment pas sûr que ça vaille le coup de faire tourner ce script toutes les minutes/secondes rien que pour ça !
Perso, je préfère ma solution d'utilisateur lambda (user=administrateur) avec un conky affichant le niveau de remplissage de chaque point de montage de mon système.


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

#48 16-05-2021 11:24:14

Herve5
Adhérent(e)
Lieu : mi à Toulouse mi Paris, France
Distrib. : Debian 6.1.0-13 bullseye
Noyau : Linux 6.1.0-13-amd64
(G)UI : xfce 4.18
Inscription : 02-03-2019

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Bon, après quelque réflexion, je viens d'aller vérifier dans les tableaux de bord XFCE : figurez-vous qu'il y en a un, qui fait exactement ça...
On peut même en mettre plusieurs, pour chaque disque, etc.
cJSdHgw.png

--
Hervé S.
Lenovo Thinkpad P53 / Debian 12 Xfce ; Tuxedo InfinityBook / Ubuntu

Hors ligne

#49 16-05-2021 13:01:10

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

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

lol

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

#50 16-05-2021 14:21:51

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [résolu] X ne démarre pas, / est plein, apt-get clean ne suffit pas

Bonjour,

Merci pour tout ça.

raleur a écrit :

jpt a écrit :

    Je fouillerais dans /sys/block/sdX/sdXY où on trouve une entrée "size" mais je ne sais pas où trouver "free, total, etc.".

Normal. Ces informations concernent un périphérique bloc, pas un système de fichiers.

J'ai bien trouvé /sys/block/sda/sda1/size mais pour les autres valeurs, bernique...

raleur a écrit :

On sait seulement qu'il n'est pas fiable avec certains systèmes de fichiers comme btrfs

Non, il n'y a pas que df qui soit sujet à ça, exemple (raccourci) avec parted, parfois :

$ parted /dev/sda print all free
Model: ATA ST2000DM008-2FR1 (scsi)
Disk /dev/sda: 2000GB            FAUX : c'est l'un des deux disques de données, sdb ou sdc

Model: ATA ST2000DM008-2FR1 (scsi)
Disk /dev/sdb: 2000GB            FAUX : c'est l'autre disque de données, sdc ou sdb

Model: ATA KINGSTON SA400S3 (scsi)
Disk /dev/sdc: 240GB             FAUX : c'est le ssd, disque système, sda


Mais j'ai déjà présenté tout ça.


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

Pied de page des forums