[SSH-EXEC] HDD :: Timeout

Bonjour,

Depuis la dernière maj du plugin (mais que j’ai fait en meme temps que jeedom 4.17 à 4.18) j’ai une vm linux basique qui ne veut plus remonter son info d’espace disque

[2024-10-04 13:34:16] DEBUG  : [Docker][SSH-EXEC] HDD :: LC_ALL=C df -h 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
[2024-10-04 13:34:16] ERROR  : [Docker][SSH-EXEC] HDD :: Timeout

Alors qu’en local ca fonctionne

image

Une idée ?

Merci.

Bonjour,

Tu as lancé la commande, mais pourrais tu la lancer avec la commande « entière » (j’entend par là d’ajouter au début le LC_ALL=C pour voir si ca fait la même chose) ?

Si cela fait la même chose, il me faudrait des logs un peu plus complète, au moment où cela se produit (pour forcer la chose, tu peux aller dans ton équipement et le Sauvegarder, cela va lancer une mise à jour des valeurs dont le HDD)

TiTidom.

Et bien non si je rajoute le début la commande en ssh ça ne répond rien ! Le prompt reste en attente.

Bonjour,

Et cette commande donne quoi si tu la lances en direct sur ton linux ? (Si la commande se lance je veux bien le résultat ici) :

LC_ALL=C df -h

Tu peux m’en dire plus sur cette vm linux? C’est du iobroker ? En quelle version de iobroker ? Récente? Elle tourne sur quoi ?

J’essaie de cerner d’où pourrait venir le soucis, car le LC_ALL=C qui est au début de la commande, il est sur presque toutes les commandes donc le soucis serait sur l’association de ce paramètre avec la commande ‹ df ›.

Sur une autre VM, tu n’as pas le soucis, ce n’est que sur celle ci?

TiTidom.

Bonjour,

Je suis avec un Core 4.5beta en debian 11
Plugin en beta, le tout mis à jour

image

Donc pas de souci

Mais un truc m’interpelle dans ta capture
image

Docker ? Ne serait-ce pas un truc spécifique à docker du coup ?

1 « J'aime »

Même résultat avec ta commande ça renvoie rien.

Bah elle a rien de fou cette VM exceptée qu’elle fait tourner des conteneurs docker. Le linux et docker sont a jour.

root@iobroker:~# docker -v
Docker version 27.3.1, build ce12230
root@iobroker:~# docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED        STATUS                  PORTS                                                                                  NAMES
fa9aaea1485c   lscr.io/linuxserver/swag     "/init"                  17 hours ago   Up 17 hours             0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   swag
c854a2f83c97   buanet/iobroker:latest       "/bin/bash -c /opt/s…"   20 hours ago   Up 20 hours (healthy)                                                                                          iobroker
eb7beebf1dc8   guacamole/guacamole          "/opt/guacamole/bin/…"   45 hours ago   Up 20 hours             0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                              guacamole
685692fb4179   guacamole/guacd              "/bin/sh -c '/opt/gu…"   45 hours ago   Up 20 hours (healthy)   4822/tcp                                                                               guacd
935c859ae7c3   mysql                        "docker-entrypoint.s…"   45 hours ago   Up 20 hours             3306/tcp, 33060/tcp                                                                    mysql
6becf95b8bd6   instantlinux/nut-upsd        "/bin/sh -c /usr/loc…"   2 days ago     Up 20 hours (healthy)   0.0.0.0:3493->3493/tcp, :::3493->3493/tcp                                              nutserver
caffebcf8ade   koenkk/zigbee2mqtt:1.37.1    "docker-entrypoint.s…"   6 days ago     Up 20 hours             0.0.0.0:8082->8080/tcp, [::]:8082->8080/tcp                                            zigbee2mqtt
6642aa458618   zwavejs/zwave-js-ui:9.12.0   "node server/bin/www"    7 days ago     Up 20 hours             0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:8091->8091/tcp, :::8091->8091/tcp   zwave-js-ui
root@iobroker:~#

Ce qui est sûr c’est que c’est ma seule VM avec du docker. Je vois que ça.

Aucun problème sur mes autres VM et ça fonctionnait sur cette VM encore ya quelques jours. J’ai mis a jour jeedom, ton plugin en même temps. Mais rien a ete fait sur la VM donc j’ai pas trop envie de l’accuser.

Re,

Que donne la commande locale sur ce linux?

Car ce n’est pas normal que la commande LC_ALL=C ne soit pas interprétée correctement.

Et cette commande fonctionne elle du coup ? :

LC_ALL=C free

TiTidom.

On a donc iobroker sur une vm et avec le même OS.

bizarre que je n’aie pas de souci.

je vais tester les commandes et donner le résulat

Sur ma vm debian 12

LC_ALL=C df -h

root@IOBroker:~# LC_ALL=C df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            962M     0  962M   0% /dev
tmpfs           197M  644K  197M   1% /run
/dev/sda1        47G  3.8G   40G   9% /
tmpfs           984M     0  984M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           197M     0  197M   0% /run/user/1000
 df -h 2>/dev/null | grep '/S' | head -l | 'awk ' { print $2,$3,$5 }'

met un prompt et attend ?

LC_ALL=C df -h 2>/dev/null | grep '/S' | head -l | 'awk ' { print $2,$3,$5 }'

idem un prompt

Salut,

Merci pour ces tests, au moins ca permet de comparer (car je n’ai pas d’iobroker de mon côté), pour les 2 dernières commandes que tu lances, il y a des coquilles dans la commande (un ’ en trop dans la ligne, juste avant le awk - c’est pour ca qu’il y a un prompt qui attend car il attend la fin d’une commande, un autre ’ par exemple :stuck_out_tongue: -, un S versus un $ et un -l (L) au lieu de -1 les commandes devraient être :

df -h 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
LC_ALL=C df -h 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'

Il faudrait également lancer la commande (pour s’assurer que la locale C est bien là et disponible, ce qui devrait être le cas systématiquement, mais sait-on jamais) :

locale -a

et on devrait obtenir un résultat de ce type :

@vm-debian12:~$ locale -a
C
C.utf8
fr_FR.utf8
POSIX

TiTidom

Sorry, ben iobroker c’est le truc installé dessus, sinon c’st juste une vm avec un debian 12 classic

root@IOBroker:~# df -h 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5                                                                     }'
47G 3,8G 9%
root@IOBroker:~# LC_ALL=C df -h 2>/dev/null | grep '/$' | head -1 | awk '{ print                                                                     $2,$3,$5 }'
47G 3.8G 9%
root@IOBroker:~# locale -a
C
C.utf8
fr_FR.utf8
POSIX
root@IOBroker:~#

Re,

Aucun soucis :wink: et merci pour ces infos.

Donc chez toi, toutes les commandes passent normalement (c’est déjà rassurant :stuck_out_tongue: )

Attendons le retour de @znation sur ces mêmes commandes pour comparer.

TiTidom.

ben oui c’est pour cela que je me suis permis d’intervenir, car de mon coté sur ce qui semble être la même chose vm debian12 il semble que pour lui ca marche pas et que moi oui

donc si cela peut aider a trouver le pourquoi :wink:

1 « J'aime »

Petite aparté en attendant :

Pour l’information de tous, voilà pourquoi j’utilise le LC_ALL=C devant la plupart des commandes maintenant, on le voit bien sur ton retour des cmd :

image

Dans un cas, on a 3,8G et dans l’autre cas, 3.8G (une virgule versus un point),

C’est pour cette raison que dans les dernières mises à jour de Monitoring, j’ai uniformisé toutes les commandes pour que quelle que soit la langue du système, il me sorte la même chose, sinon ensuite c’est un enfer de faire la différence dans le code pour traiter les résultats et les afficher.

Fin de l’aparté :stuck_out_tongue:

TiTidom.

2 « J'aime »
root@iobroker:~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
root@iobroker:~# LC_ALL=C free
               total        used        free      shared  buff/cache   available
Mem:        10176332     3918644     3130008        5028     3444980     6257688
Swap:         999420           0      999420

Attention, je ne sais pas si chez toi tu l’installe direct sur le vm, moi c’est virtualisé dans un conteneur docker donc au final la vm n’a aucune dépendance avec iobroker.

EDIT : je teste un truc je pense avoir trouvé après avoir fait quelques recherches sur google

Trouvé ! rien a voir avec tout ce qu’on cherche mais c’est lié au mount (dans /etc/fstab) que je fais de mon nas sur la vm (sachant que mon prochain conteneur docker est lié à mon stockage photos donc j’avais fait quelques préparations)

192.168.0.35:/volume1/Photos /media/nas nfs4 defaults,user,exec,noac,retry=10,timeo=600,retrans=10,bg,soft 0 0

Et je pense que ta commande va tenter d’aller browser toute mon arbo de mon NAS non ? Y’a t il un ajustement possible de ton check disk ?

La commande passe crème bien evidemment après

root@iobroker:~# LC_ALL=C df -h 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%

Proposition (de chatpgt lol) : exclure les mount nfs et cifs

LC_ALL=C df -h -x nfs -x nfs4 -x cifs 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'

La commande avec mon mount passe direct :wink:

root@iobroker:/media# LC_ALL=C df -h -x nfs4 -x nfs 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
1 « J'aime »

Re,

Bien joué ! :+1:

C’était ma prochaine question justement de savoir si tu avais des points de montage externes :wink:

Alors, oui j’ai potentiellement une solution :wink: mais à voir si elle n’a pas d’effet de bords ailleurs (lol).

Pour être sûr avant de faire des changements dans le plugin, pourrais tu tester cette commande (en ayant ton montage externe actif bien entendu) :

LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'

Il y a un l ajouté dans les options de df, qui signifie de ne chercher que les montages locaux (jamais testé donc pour ca que je veux d’abord vérifier que c’est bien ca…)

TiTidom

Ca passe ! :sunglasses:

J’ai stressé la vm en enchainant la meme commande lol

root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# LC_ALL=C df -hl 2>/dev/null | grep '/$' | head -1 | awk '{ print $2,$3,$5 }'
30G 9.6G 34%
root@iobroker:/media# cd nas/
root@iobroker:/media/nas# ls
immich_copie  Library  Library_flat_mode  unified  upload
root@iobroker:/media/nas#

et désactivé le monitoring de la vm temporairement en attandant la beta :wink:

1 « J'aime »

Top ! :+1:

Je regarde pour vérifier (j’ai un cas en tête où il faut que je teste :open_mouth: ) et si pas d’effet de bord, je sortirai une béta en fin de journée :wink:

TiTidom.

EDIT : tests faits (sur des disques externes sur Syno notamment), ca passe aussi, je prépare donc une béta si j’ai le temps avant de partir pour un dej :stuck_out_tongue: sinon en revenant :wink: