• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Conky 1.10.6 und HDDTemp

A

Anonymous

Gast
Hallo Leute ich wünsche Euch einen schönen Tag .
Wie der Betreff schon sagt versuche ich unter Conky 1.10.6 meine Festplatten Temperatur anzeigen zu lassen , wobei Festplatte nicht ganz richtig ist es sind 2 SSD Platten verbaut.
Wenn ich auf der Konsole mit root " hddtemp /dev/sda "eingebe bekomme ich einen korrekten Wert angezeigt.
Code:
11:22 Eingabe ---> hddtemp /dev/sda
/dev/sda: Intenso SSD Sata III: 25°C

Für Conky habe ich unter Google jede Menge Möglichkeiten gefunden wie es funktionieren sollte. Ich habe für die Conky Transparents auch eine Ewigkeit gebraucht bis ich es hatte . Aber die HDDTemp schein mir unlösbar.
Hier ein paar Beispiele die all nicht funktionieren.
Code:
${hddtemp /dev/sda} °C
HD Temp:${exec hddtemp /dev/sda -n --unit=C}C

Auf einer anderen Seite habe ich folgendes gefunden
Code:
sudo chmod u + s / usr / sbin / hddtemp 
Sudo Sensoren-detect (Antwort ‚Ja‘ oder „Y“ oder „S“ für alle)

Leider weiß ich nicht was man damit genau macht , also frage ich mal lieber .
Sensors ergibt das
Code:
11:49 Eingabe ---> sensors
radeon-pci-0100
Adapter: PCI adapter
temp1:            N/A  (crit = +120.0°C, hyst = +90.0°C)

acpitz-virtual-0
Adapter: Virtual device
temp1:        +83.0°C  (crit = +210.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +82.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +82.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +74.0°C  (high = +87.0°C, crit = +105.0°C)
Core 2:         +68.0°C  (high = +87.0°C, crit = +105.0°C)
Core 3:         +68.0°C  (high = +87.0°C, crit = +105.0°C)

Wie also bekomme ich den root Befehl nach Conky ohne root ? An vielen Beispielen vor Opensuse 42.1 ist ja zu sehen das es mal ging.
Es muss also eine neue Schreibweise geben , nur wie ? Ich bin für jede Hilfe Dankbar , aber bitte bleibt bei der Deutschen Sprache , mein englisch ist sehr bescheiden. Und meine Opensuse Kenntnisse sind , mit viel Google auch bescheiden. Ich muss immer mal wieder Google befragen.
Nur diesmal komme ich mit Google nicht weiter.
 

marce

Guru
ohne aktuelle Erfahrungen: Ich würde mal damit anfangen, in die Logs zu schauen (das steht sicherlich mehr als "es funktioniert nicht") und in der Konfig abolsute, komplette Pfade verwenden
 

josef-wien

Ultimate Guru
hddtemp muß als root ausgeführt werden. Da bei diesem Programm nichts "passieren" kann, halte ich den Weg über Set User ID für vertretbar (aber den Befehl mußt Du schon richtig schreiben und als root ausführen: https://de.wikipedia.org/wiki/Setuid). Für "gefährliche" Sachen dagegen muß sudo entsprechend konfiguriert werden (und solange Du das nicht gemacht hast, solltest Du sudo als nicht existent betrachten und Dich korrekt mit su oder su - als root anmelden, wenn Du Dich Systemverwaltungstätigkeiten hingibst).
 
OP
A

Anonymous

Gast
marce schrieb:
ohne aktuelle Erfahrungen: Ich würde mal damit anfangen, in die Logs zu schauen (das steht sicherlich mehr als "es funktioniert nicht") und in der Konfig abolsute, komplette Pfade verwenden
Leider gibt es unter " /etc/conky/ " keine Logs , Fehlermeldungen mache ich mir sichtbar wenn ich Conky mit der Konsole starte.

josef-wien schrieb:
hddtemp muß als root ausgeführt werden. Da bei diesem Programm nichts "passieren" kann, halte ich den Weg über Set User ID für vertretbar (aber den Befehl mußt Du schon richtig schreiben und als root ausführen: https://de.wikipedia.org/wiki/Setuid). Für "gefährliche" Sachen dagegen muß sudo entsprechend konfiguriert werden (und solange Du das nicht gemacht hast, solltest Du sudo als nicht existent betrachten und Dich korrekt mit su oder su - als root anmelden, wenn Du Dich Systemverwaltungstätigkeiten hingibst).

Es muss ja einen weg ohne root geben , denn bis zu Opensuse Vers.13.x und Conky Vers.0.x ging das ja ohne weiteres , es gibt ja viele conkyrc Dateien und auch Screenshots die das belegen . Es liegt an der Schreibweise des Befehles , denn " ${hddtemp /dev/sad} " geht leider nicht mehr . Da muss sich die Syntax geändert haben. Auf dieser Seite https://github.com/brndnmtthws/conky/wiki/Configuration-Variables ist ja die Syntax zu sehen . Nur leider steht da kein Beispiel zu.
 

spezi

Advanced Hacker
josef-wien hat recht. Ich setze schon seit anno tobak die UID/ GID bei hddtemp. Wenn Du hddtemp als User in der Konsole aufrufst kommt ja auch:
Absolute path to 'hddtemp' is '/usr/sbin/hddtemp', so running it may require superuser privileges (eg. root).

mfg
spezi
 

josef-wien

Ultimate Guru
toyotafahrer schrieb:
Es muss ja einen weg ohne root geben
Den gibt es nicht, und den hat es auch nie gegeben. Möglicherweise hat Dir früher eine Automatik den Weg über Set User ID geebnet, ohne daß es Dir bewußt war.

Solange Du
Code:
/usr/sbin/hddtemp /dev/sd?
nicht in der Konsole als normaler Benutzer erfolgreich aufrufen kannst, brauchst Du Dir über die Integration in Conky (zu der ich nichts beitragen kann) und andere grafische Anzeigeprogramme keine Gedanken zu machen.
 
OP
A

Anonymous

Gast
Ich bin ja recht unerfahren mit Linux , aber hier habe ich ein Beispiel mit der alten conkyrc da wir die HDDTemp angezeigt .https://forum.ubuntuusers.de/topic/sammelthread-zeig-mir-deine-.conkyrc/60/?highlight=hddtemp+in+conky+anzeigen#post-2922372

Und das ist nur eins von vielen Beispielen. Wenn ich jetzt länger gesucht hätte dann hätte ich auch ein Beispiel mit Opensuse gefunden . Ich teste das morgen mal und werde mal die Opensuse 13. igendwas installieren . Dann weiß ich mehr .
 
OP
A

Anonymous

Gast
Ich habe hier was gefunden , was für mich heißt es hat sich was geändert . Denn so viele Screenshot von Conky mit hddtemp ist ja schon unheimlich.

Code:
Konfiguration
Nach der Installation muss man hddtemp an die eigenen Bedürfnisse anpassen. Dazu führt man in einem Terminal [2] den folgenden Befehl aus:

sudo dpkg-reconfigure hddtemp 

Anschließend bekommt man mehrere Fragen gestellt. Im Nachfolgenden wird die richtige Konfiguration für den Einsatz von hddtemp auf einem Desktop-Rechner geschildert. Andere Einsatzzwecke bedürfen evtl. einer anderen Konfiguration.
Soll hddtemp mit root-Rechten arbeiten?: Nein
Ausgabe in Syslog schreiben: 0
hddtemp als Dienst starten: Ja
Netzwerkschnittstelle an der hddtemp lauschen soll: 127.0.0.1
Port-Nummer: 7634
Das heißt ja das die Abfrage " hddtemp /dev/sda " ohne root möglich war .

Das ist vom Ubuntu Forum , ich habe leider keine Ahnung wie unterschiedlich die Linuxvers. sind .
Ich hatte mir Opensuse angeguckt und bin dabei geblieben.

Aber was mich interessiert wie kann ich denn nun meine HDDTemp über die IP auslesen denn das geht ja ohne root .Nur leider sind die Beispiele die ich finde alle in englisch , da komme ich nicht sehr weit mit. Leider.
Aber es könnte ja sein das mir das einer mit der IP erklären kann .
Nur wenn der Aufwand nicht so groß ist.
 

Sauerland

Ultimate Guru
Als root:
Code:
systemctl enable hddtemp.service
Code:
systemctl restart hddtemp.service
Als User:
Code:
netcat localhost 7634

Und ich habe nur installiert und in /etc/syconfig die Festplatten eingetragen, nichts mit Dateirechten gemacht.

Code:
ich@linux64:~> netcat localhost 7634
|/dev/sda|WDC WD20EZRX-00D8PB0|29|C||/dev/sdb|SAMSUNG HD103UJ|30|C|ich@linux64:~>
 

tomm.fa

Administrator
Teammitglied
toyotafahrer schrieb:
Das heißt ja das die Abfrage " hddtemp /dev/sda " ohne root möglich war .

Das ist vom Ubuntu Forum , ich habe leider keine Ahnung wie unterschiedlich die Linuxvers. sind .
Ich hatte mir Opensuse angeguckt und bin dabei geblieben.

Aber was mich interessiert wie kann ich denn nun meine HDDTemp über die IP auslesen denn das geht ja ohne root .

Als Root/su folgende zwei Schritte:
Code:
systemctl enable hddtemp.service
Code:
systemctl start hddtemp.service

Als Nutzer:
Code:
nc localhost 7634
Es sei denn es ist bei dir was anderes als 7634 in „/etc/sysconfig/hddtemp“ eingetragen.

Edit:
Der Sauerländer war wieder schneller. :nosmile: :wink:
 
OP
A

Anonymous

Gast
Super ich danke Euch beiden für die schnelle Antwort. Ich werde das Morgen testen heute ist keine Zeit für solche Sachen leider, aber meine Enkel gehen nun mal vor.
Und das trage ich dann so ${nc localhost 7634} in Conky ein?
 

tomm.fa

Administrator
Teammitglied
toyotafahrer schrieb:
Und das trage ich dann so ${nc localhost 7634} in Conky ein?
Ich denke mal das ein exec oder noch besser execi vorangestellt werden muss. Bei exec wird dir ja nur die Temperatur der HDD angezeigt wenn Conky startet, bei execi gibst du einen Interwall zum auslesen in Sekunden an. Schaue im WWW mal nach „conky exec“.

Beispiel (ungetestet) für eine Ausgabe welche alle zwei Sekunden aufgefrischt wird:
Code:
${execi 2 nc localhost 7634}
 
OP
A

Anonymous

Gast
Als erstes vielen Dank an alle die mir hier geholfen haben.

Mit dem Start des HDD Services geht auch hddtemp in Conky
Es funktioniert fogendes ohne Probleme

Code:
${execi 2 nc localhost 7634}
${hddtemp /dev/sda} ºC , ich habe in Conky den Intervall auf eine Sekunde

Das hier " nc localhost 7634 " hat sofort funktioniert ,wenn man das das mit dem Service weiß.Ich habe mir heute die OS 42.3 auf mein Laptop gemacht .
Kann man die Ausgabe von " nc localhost 7634 " noch irgendwie schöner gestalten , oder geht das nicht anders ?
Code:
Di Dez 05 12:22 Eingabe ---> nc localhost 7634
|/dev/sda|Intenso SSD Sata III|27|C||/dev/sdb|SanDisk SDSSDA240G|30|C|
Ist ja schön das es so funktioniert , aber hier und da ein Leerzeichen wäre ja doch ganz nett.

Dann habe ich noch eine Frage . Ich habe mir ein Script gemacht was beim Start ausgeführt wird , dieses muss ich 2x mit meinem Root PW bestätigen . Es gibt ja die Datei /etc/sudoers , da kann man doch auch festlegen wer oder was ohne PW was starten darf. Ich habe folgendes eingetragen
Code:
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: /home/lutz/Scripte/hdd_service.sh

Die letzte Zeile ist von mir , damit wollte ich erreichen , das beim booten das Script keine root PW Abfrage macht.
Was ist da Falsch ? Oder muss noch irgendwo was eingetragen werden . Das Script ist ausführbar.

Vielen Dank , bis hier hin .
 

marce

Guru
... üblicherweise: 1 Problem -> 1 Thread.

Aber: in der sudoers konfigurierst Du, welche Befehle ein User per sudo aufrufen darf. Nicht, welche beim Aufruf mit root-Rechten laufen.
Du müsstest dort also die Befehle eintragen, die in dem Script per sudo aufgerufen werden.

(und - idealerweise - nicht direkt in die sudoers sondern unterhalb von /etc/sudoers.d/ eine ded. Datei anlegen)
 

josef-wien

Ultimate Guru
Die zweite Eintragung ist eine Teilmenge der ersten und somit logisch unnötig.

Ich betrachte es als schwere Fehlentscheidung, wenn alle Mitglieder der Gruppe "wheel" alle Befehle als jeder auf dem System definierter Benutzer ausführen dürfen.

Die Konfiguration von "sudo" sollte immer so restriktiv wie möglich erfolgen. Ich würde
Code:
%wheel ALL = (root) NOPASSWD: Befehl(e)
verwenden und dabei nicht das Skript, sondern nur die darin enthaltenen Befehle samt vollständigem Pfad definieren.

Im übrigen habe ich ohne Wissen über den Inhalt des Skripts das Gefühl, daß die Ausführung über einen systemd-Dienst der geeignetere Weg ist.
 

marce

Guru
... und zudem hängt es davon ab, wie Du die sudoers-Datei bearbeitet hast, ob Einträge / Änderungen darin überhaupt direkt greifen.
 
OP
A

Anonymous

Gast
Vielen Dank für die Rückmeldung , na ja dafür habe ich ja gefragt und das erstmal korrigiert. Die Änderung waren schon mit Rootrechten , wurden also auch gespeichert . Aber jetzt befasse ich mich erst einmal mit /etc/sudoers.d/ .

Ich Melde mich wenn ich dieses Problem irgendwie gelöst habe ,vielen Dank bis hier hin.
 
OP
A

Anonymous

Gast
Ich verweise aber einfach mal auf die sudo-Doku.

Ja , wer englisch kann ist oben auf das weiß ich , nur leider habe ich kein englisch in der Schule gehabt .
Also Pech gehabt und mit dem bisschen was ich gelernt habe komme ich gerade so hin aber eine " man sudo " lesen und übersetzten ähm nee . Ich habe 3 Facharbeiter aber das ging auch ohne englisch , jetzt bin ich Rentner und lerne immer noch dazu , aber ein richtiges englisch wird das sicher nicht.
 
Oben