Proxmox [Tuto] Afficher la température CPU dans Proxmox VE 8

  • Auteur du sujet Auteur du sujet EVO
  • Date de début Date de début
@Loutre38
Je crois avoir compris pourquoi ça ne modifie pas ton fichier.
Tu peux me confirmer que ton fichier n'a pas été altéré ou que tu ne l'as pas modifié ?
Car il y a une différence au niveau d'une tabulation ou deux selon si c'est mon fichier ou le tiens... :
1696010652956.png

je vais voir pour modifier le script.
 
@Loutre38
J'ai trouvé comment faire que ça fonctionne avec nos deux fichiers. Remplace la ligne a_rechercher par celle-ci :
Bash:
a_rechercher="\t{\n\t    xtype: 'box',\n\t    colspan: 2,\n\t    padding: '0 0 20 0',\n\t},\n\t{\n\t    itemId: 'cpus',\n\t    colspan: 2,\n\t    printBar: false,\n\t    title: gettext('CPU(s)'),\n\t    textField: 'cpuinfo',\n\t    renderer: Proxmox.Utils.render_cpu_model,\n\t    value: '',\n\t},\n\t{\n\t    itemId: 'kversion',\n\t    colspan: 2,\n\t    title: gettext('Kernel Version'),\n\t    printBar: false,\n\t    textField: 'kversion',\n\t    value: '',\n\t},\n\t{\n\t    itemId: 'version',\n\t    colspan: 2,\n\t    printBar: false,\n\t    title: gettext('PVE Manager Version'),\n\t    textField: 'pveversion',\n\t    value: '',\n[[:blank:]]*},"

Sinon reprend le script complet : https://github.com/MilesTEG1/proxmox-post-install-scripts/blob/main/4-sensors-amd-pve8.sh
 
@Loutre38
Je crois avoir compris pourquoi ça ne modifie pas ton fichier.
Tu peux me confirmer que ton fichier n'a pas été altéré ou que tu ne l'as pas modifié ?
Car il y a une différence au niveau d'une tabulation ou deux selon si c'est mon fichier ou le tiens... :
Voir la pièce jointe 10134

je vais voir pour modifier le script.
Oui je te confirme que j'ai touché le fichier.
J'ai voulu mettre en application le tuto.
Message automatiquement fusionné :

@Loutre38
J'ai trouvé comment faire que ça fonctionne avec nos deux fichiers. Remplace la ligne a_rechercher par celle-ci :
Bash:
a_rechercher="\t{\n\t    xtype: 'box',\n\t    colspan: 2,\n\t    padding: '0 0 20 0',\n\t},\n\t{\n\t    itemId: 'cpus',\n\t    colspan: 2,\n\t    printBar: false,\n\t    title: gettext('CPU(s)'),\n\t    textField: 'cpuinfo',\n\t    renderer: Proxmox.Utils.render_cpu_model,\n\t    value: '',\n\t},\n\t{\n\t    itemId: 'kversion',\n\t    colspan: 2,\n\t    title: gettext('Kernel Version'),\n\t    printBar: false,\n\t    textField: 'kversion',\n\t    value: '',\n\t},\n\t{\n\t    itemId: 'version',\n\t    colspan: 2,\n\t    printBar: false,\n\t    title: gettext('PVE Manager Version'),\n\t    textField: 'pveversion',\n\t    value: '',\n[[:blank:]]*},"

Sinon reprend le script complet : https://github.com/MilesTEG1/proxmox-post-install-scripts/blob/main/4-sensors-amd-pve8.sh
Je teste quand je peux et je reviens d'informer.

En tout cas merci beaucoup.
 
  • J'aime
Réactions: MilesTEG
@Loutre38
J'ai trouvé comment faire que ça fonctionne avec nos deux fichiers. Remplace la ligne a_rechercher par celle-ci :
Bash:
a_rechercher="\t{\n\t    xtype: 'box',\n\t    colspan: 2,\n\t    padding: '0 0 20 0',\n\t},\n\t{\n\t    itemId: 'cpus',\n\t    colspan: 2,\n\t    printBar: false,\n\t    title: gettext('CPU(s)'),\n\t    textField: 'cpuinfo',\n\t    renderer: Proxmox.Utils.render_cpu_model,\n\t    value: '',\n\t},\n\t{\n\t    itemId: 'kversion',\n\t    colspan: 2,\n\t    title: gettext('Kernel Version'),\n\t    printBar: false,\n\t    textField: 'kversion',\n\t    value: '',\n\t},\n\t{\n\t    itemId: 'version',\n\t    colspan: 2,\n\t    printBar: false,\n\t    title: gettext('PVE Manager Version'),\n\t    textField: 'pveversion',\n\t    value: '',\n[[:blank:]]*},"

Sinon reprend le script complet : https://github.com/MilesTEG1/proxmox-post-install-scripts/blob/main/4-sensors-amd-pve8.sh
Voici mon retour,
J'ai modifié mon fichier : pvemanagerlib.js
Pour le mettre conforme au tien (Sans modif pvemanagerlib.js)

Je lance ton code, et pas de modif dans le fichier (Après script pvemanagerli b.js.txt)
 

Pièces jointes

@Loutre38 ca c’est bizarre car hier j’ai tester sur ton fichier et sur le mien (enfin sur des extraits) et ça fonctionnait.
Je testerai sur les fichiers complets des fois que…
Mais ça reste étonnant…
 
@Loutre38
Je viens de refaire les essais avec le fichier sauvegardé, donc sans modifications.
Et le script fonctionne pour la version AMD.
Tu lances bien le script depuis une invite root ?
 
@Loutre38
Je viens de refaire les essais avec le fichier sauvegardé, donc sans modifications.
Et le script fonctionne pour la version AMD.
Tu lances bien le script depuis une invite root ?
Salut,

Oui je lance le script depuis puTTY avec utilisateur root :


login as: root
root@192.168.1.XXX's password:
Linux pve 6.2.16-10-pve #1 SMP PREEMPT_DYNAMIC PMX 6.2.16-10 (2023-08-18T11:42Z) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Sep 30 10:17:36 2023 from 192.168.1.5
root@pve:~# #!/usr/bin/env bash

# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ Script pour ajouter les sondes de températures dans Proxmox VE ║
# ║ Version pour CPU AMD ║
# ╚══════════════════════════════════════════════════════════════════════════╝

# ! À lancer en root !
# chmod 764 *.sh

# ~~~~~~~~~~ Variables à modifier ~~~~~~~~~ #

backup_folder=~/"config-proxmox/backup-$(date +%Y-%m-%d--%Hh%Mm%Ss)"
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #

# ~~~~~~~~~~~ Dossier de backup ~~~~~~~~~~~ #
mkdir -p "${backup_folder}"
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #

printf "\n-- Script pour configurer les sondes de température dans proxmox --"
printf "\n-- 1. Mise à jour des dépôts et des paquets existants\n"
read -p "Press enter to continue"
sudo apt update && sudo apt upgrade

printf "\n-- 2. Installation des dépendances : lm-sensors\n"
read -p "Press enter to continue"
sudo apt install -y lm-sensors

printf "\n-- 3. Sauvegardes des fichiers à modifer"
cp --parents -v /usr/share/perl5/PVE/API2/Nodes.pm "${backup_folder}"
cp --parents -v /usr/share/pve-manager/js/pvemanagerlib.js "${backup_folder}"

# DEBUG
read -p "Press enter to continue #3 Backup"
# DEBUG

printf "\n-- 4. Édition du fichier '/usr/share/perl5/PVE/API2/Nodes.pm'"
# 1er fichier : /usr/share/perl5/PVE/API2/Nodes.pm
# Source : https://stackoverflow.com/a/12248998/17694638
a_rechercher="\tmy \$dinfo"
a_ajouter="\t\$res->{thermalstate} = \`sensors k10temp-pci-00c3\`;\n\n"
# Vérification que cette modification n'a pas déjà été faite
if ! grep "\$res->{thermalstate} = \`sensors k10temp-pci-00c3\`;" /usr/share/perl5/PVE/API2/Nodes.pm; then
# Modification non faite. On la fait.
sed -i "/$a_rechercher/ { N; s/$a_rechercher/$a_ajouter&/ }" /usr/share/perl5/PVE/API2/Nodes.pm
else
printf "\nLa modification du fichier '/usr/share/perl5/PVE/API2/Nodes.pm' semble déjà avoir été effectuée.\nRien ne sera modifié ici. Vérifier quand même le fichier.\n"
fi

printf "\n-- 5. Édition du fichier '/usr/share/pve-manager/js/pvemanagerlib.js'"
# 2ème fichier : /usr/share/pve-manager/js/pvemanagerlib.js
# Source : https://forum.hardware.fr/hfr/Progr...lusieurs-fichiers-sujet_148479_1.htm#t2454720
# Source : https://superuser.com/questions/112834/how-to-match-whitespace-in-sed
a_rechercher="\t{\n\t xtype: 'box',\n\t colspan: 2,\n\t padding: '0 0 20 0',\n\t},\n\t{\n\t itemId: 'cpus',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('CPU(s)'),\n\t textField: 'cpuinfo',\n\t renderer: Proxmox.Utils.render_cpu_model,\n\t value: '',\n\t},\n\t{\n\t itemId: 'kversion',\n\t colspan: 2,\n\t title: gettext('Kernel Version'),\n\t printBar: false,\n\t textField: 'kversion',\n\t value: '',\n\t},\n\t{\n\t itemId: 'version',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('PVE Manager Version'),\n\t textField: 'pveversion',\n\t value: '',\n[[:blank:]]*},"
a_remplacer="\t{\n\t xtype: 'box',\n\t colspan: 2,\n\t padding: '0 0 10 0',\n\t},\n\t{\n\t itemId: 'cpus',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('CPU(s)'),\n\t textField: 'cpuinfo',\n\t renderer: Proxmox.Utils.render_cpu_model,\n\t value: '',\n\t},\n\t{\n\t itemId: 'kversion',\n\t colspan: 2,\n\t title: gettext('Kernel Version'),\n\t printBar: false,\n\t textField: 'kversion',\n\t value: '',\n\t},\n\t{\n\t itemId: 'version',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('PVE Manager Version'),\n\t textField: 'pveversion',\n\t value: '',\n\t},\n\t{\n \titemId: 'thermal',\n \tcolspan: 2,\n \tprintBar: false,\n \ttitle: gettext('CPU Thermal State'),\n \ttextField: 'thermalstate',\n \trenderer:function(value){\n \tconst tdie = value.match(\/Tdie.*?\+([\d\.]+)\/)[1];\n \treturn \`Tdie: \${tdie} ℃ \`;\n \t}\n\t},"
printf "\n-- Script terminé --"la Web-UI"'/usr/share/pve-manager/js/pvemanagerlib.js' semble déjà avoir été effectuée.\nRien ne sera modifié ici. Vérifier quand même le fichier.\n"

-- Script pour configurer les sondes de température dans proxmox --
-- 1. Mise à jour des dépôts et des paquets existants
Press enter to continue
:devilish:-bash: sudo: command not found

-- 2. Installation des dépendances : lm-sensors
Press enter to continue
:devilish:-bash: sudo: command not found

-- 3. Sauvegardes des fichiers à modifer/usr -> /root/config-proxmox/backup-2023-10-01--11h49m11s/usr
/usr/share -> /root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share
/usr/share/perl5 -> /root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share/perl5
/usr/share/perl5/PVE -> /root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share/perl5/PVE
/usr/share/perl5/PVE/API2 -> /root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share/perl5/PVE/API2
'/usr/share/perl5/PVE/API2/Nodes.pm' -> '/root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share/perl5/PVE/API2/Nodes.pm'
/usr/share/pve-manager -> /root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share/pve-manager
/usr/share/pve-manager/js -> /root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share/pve-manager/js
'/usr/share/pve-manager/js/pvemanagerlib.js' -> '/root/config-proxmox/backup-2023-10-01--11h49m11s/usr/share/pve-manager/js/pvemanagerlib.js'
Press enter to continue #3 Backup

-- 4. Édition du fichier '/usr/share/perl5/PVE/API2/Nodes.pm' $res->{thermalstate} = `sensors k10temp-pci-00c3`;

La modification du fichier '/usr/share/perl5/PVE/API2/Nodes.pm' semble déjà avoir été effectuée.
Rien ne sera modifié ici. Vérifier quand même le fichier.

-- 5. Édition du fichier '/usr/share/pve-manager/js/pvemanagerlib.js'
-- 6. Redémarrage de la Web-UI

-- Script terminé --root@pve:~#
root@pve:~#

Et aucune modif.

J'ai lancé le script depuis le Shell de mon pve, idem aucune modification.

Il y a 2 messages (que j'ai mis en gras + 2 petits Diables) d'erreur : command not found.

J'ai modifié le fichier manuellement :

1696156181928.png

Puis : systemctl restart pveproxy + effacement du cache sur Chrome :
1696156346081.png



Voici le retour de la commande sensors :

1696157256466.png
 
Dernière édition:
Oui je lance le script depuis puTTY avec utilisateur root :
ok je ne pense pas que ce soit putty qui déconne...
Mais as-tu tenté d'y accéder via un terminal ? (windows terminal)...
Et hmmm, c'est depuis windows que tu fais ça...
Tu as mis le script comment sur ton proxmox ?

:devilish:-bash: sudo: command not found
Pour cette erreur, ta machine ne doit pas avoir sudo d'installé. Ce n'est pas trop grave, mais supprime le sudo devant les commandes en question.
J'ai lancé le script depuis le Shell de mon pve, idem aucune modification.
Là j'avoue que je sèche. Tout fonctionne bien sur ma machine... je lance le script sur la machine proxmox, depuis mon mac via iTerm2.

Bref, si quelqu'un de calé en bash pouvait venir aider, car moi, je ne comprends pas pourquoi ça ne fonctionne pas...
 
Mais as-tu tenté d'y accéder via un terminal ? (windows terminal)...
Je suis sur Windows 10 pro.
Je lance puTTy depuis windows.

Mais as-tu tenté d'y accéder via un terminal ? (windows terminal)...
Non

Tu as mis le script comment sur ton proxmox ?

Directement copier le code de ton GitHub dans >_ shell de mon pve PROXMOX :
1696162211749.png

Je vais finir par croire que ça vient de ma machine.... Vu que ça fonctionne chez toi.
 
Directement copier le code de ton GitHub dans >_ shell de mon pve PROXMOX :
Ça pourrait venir de là.

edit : ha mais tu colles juste comme ça les lignes de code ??!
Malheureux va 😅 Pas avec un script .sh !! Fait donc vraiment la suite!


Essaye de télécharger le script sur github, et de pousser le fichier dans ton proxmox. Et retente.
Si tu édites ce fichier, soit tu le fais avec nano dans proxmox, soit tu le fais avec Notepad++ ou VScode depuis windows afin de conserver le format linux des fin de lignes.
 
edit : ha mais tu colles juste comme ça les lignes de code ??!
Malheureux va 😅 Pas avec un script .sh !! Fait donc vraiment la suite!
Voila, le problème vient très souvent de la personne devant l'écran/clavier/sourie :ROFLMAO::ROFLMAO:

Je reprends du début sur mes connaissances et mes façons de faire :

- connaissance : débutant ++
- façons de faire : pour mes PIs, Proxmox et mon NAS Syno, je passe toujours en ssh via PuTTy (application sur Windows), ligne de commande (si je ne me trompe pas de définition :unsure::unsure:) ?

Au début j'ai suivi le tuto, en ssh depuis PuTTy pour modifier les 2 fichiers avec les commandes d'EVOTK (nano/).
Petite différence j'ai CPU AMD et non INTEL.
Puis je regarde/vérifie le/les fichiers que j'ai modifié avec WinSCP.

j'ai lancé ton script via PuTTY en premier.


Je vais regarder/chercher sur internet pour lancer des scripts sur proxmox.;);)
 
Voila, le problème vient très souvent de la personne devant l'écran/clavier/sourie :ROFLMAO::ROFLMAO:

Je reprends du début sur mes connaissances et mes façons de faire :

- connaissance : débutant ++
- façons de faire : pour mes PIs, Proxmox et mon NAS Syno, je passe toujours en ssh via PuTTy (application sur Windows), ligne de commande (si je ne me trompe pas de définition :unsure::unsure:) ?

Au début j'ai suivi le tuto, en ssh depuis PuTTy pour modifier les 2 fichiers avec les commandes d'EVOTK (nano/).
Petite différence j'ai CPU AMD et non INTEL.
Puis je regarde/vérifie le/les fichiers que j'ai modifié avec WinSCP.

j'ai lancé ton script via PuTTY en premier.


Je vais regarder/chercher sur internet pour lancer des scripts sur proxmox.;);)
Je comprends mieux ^^

Sinon, pour récupérer le script sur ta machine proxmox, tu installes git, et tu clones mon dépôt.
Bash:
apt update & apt upgrade
apt install git
git clone https://github.com/MilesTEG1/proxmox-post-install-scripts.git
 
J'ai cherche mais pas très évident de trouver, les infos.


Sinon, pour récupérer le script sur ta machine proxmox, tu installes git, et tu clones mon dépôt.
Bash:
Code:
apt update & apt upgrade
apt install git
git clone https://github.com/MilesTEG1/proxmox-post-install-scripts.git
Super merci, les lignes de commandes sont passées dans putty.

Pour la suite, je n'en sais pas plus🫠🫠🥴🥴

Aurais-tu des articles/tutos ou pourrais-tu m'expliquer la suite stp ? (je souhaite comprendre pour progresser).

En tout cas merci beaucoup pour ton aide et ta patience.(y)(y):giggle:;)
 
@Loutre38 Tu es vraiment un débutant :ROFLMAO:
Tu vas dans le dossier contenant le dépôt cloné :
Bash:
cd proxmox-post-install-scripts
chmod +x ./*.sh
Et ensuite, c'est le script 4-sensors-amd-pve8.sh que tu lances avec :
Code:
./4-sensors-amd-pve8.sh

Par contre, faut vraiment que tu fasses attention à ce que tu tapes en ligne de commande sous root. Ça peut provoquer de sérieux dégâts sur ton serveur...
Par exemple, lit ceci :
 
@Loutre38 Tu es vraiment un débutant :ROFLMAO:
Tu vas dans le dossier contenant le dépôt cloné :
Bash:
cd proxmox-post-install-scripts
chmod +x ./*.sh
Et ensuite, c'est le script 4-sensors-amd-pve8.sh que tu lances avec :
Code:
./4-sensors-amd-pve8.sh

Par contre, faut vraiment que tu fasses attention à ce que tu tapes en ligne de commande sous root. Ça peut provoquer de sérieux dégâts sur ton serveur...
Par exemple, lit ceci :
Salut, Merci pour la lecture. :giggle:;)

J'ai bien suivi des lignes et bien lancé ton script. Mais toujours le même problème.
Chargement infinie.

Bon d'après le message de Sebidou, il rencontre le même problème.
 
@Loutre38
Donc le script fonctionne ^^
Mais les modifications apportées ne fonctionnent pas. Je n'ai fait que placer les modifications données ici dans un script.
La version Intel fonctionne.

Reste plus qu'à trouver la version AMD qui fonctionne :cool:
Dès que l'un de vous la trouve, je mettrais à jour le script.
 
@Loutre38
Donc le script fonctionne ^^
Mais les modifications apportées ne fonctionnent pas. Je n'ai fait que placer les modifications données ici dans un script.
La version Intel fonctionne.

Reste plus qu'à trouver la version AMD qui fonctionne :cool:
Dès que l'un de vous la trouve, je mettrais à jour le script.
Yes pour le script et les lignes de commande du tuto.
 
  • J'aime
Réactions: MilesTEG
Voila les valeurs pour CPU RYZEN

Taper sensors
Et récupérer la valeur :

vohhY0a.png


Ensuite pour le fichier NODE :
$res->{thermalstate} = `sensors k10temp-pci-00c3`;

Et dans PVMANAGERLIB :

Code:
{
            itemId: 'thermal',
            colspan: 2,
            printBar: false,
            title: gettext('CPU Thermal State'),
            textField: 'thermalstate',         
            renderer:function(value){
                           const tdie = value.match(/Tctl.*?\+([\d\.]+)/)[1];
                           return `${tdie} °C `;
                }
        }

Bon j'ai modifier un peu le visuel pour ma part, sa donne ceci :

diiM19e.png
 
Dernière édition: