ubuntuusers.de

sudo smartctl schreibt ständig in Journal

Status: Ungelöst | Ubuntu-Version: Lubuntu 24.04 (Noble Numbat)
Antworten |

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 786

Lässt sich das Journal Schreiben verhindern?

Script fragt kontinuierlich über smartctl ab, in Journal wird ständig geschrieben mit Bsp:

<$USER> : PWD=<$PWD> ; USER=root ; COMMAND=/bin/bash -c 'smartctl -A \\/dev\\/nvme0'
Feb 03 17:43:33 <Name> sudo[2121873]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Feb 03 17:43:33 <Name> sudo[2121873]: pam_unix(sudo:session): session closed for user root

Bsp. Befehlszeile:

if [ -b /dev/nvme0n1 ]; then
tmp3=$(echo -e "$PASSW\n" | sudo -S -s  smartctl -A /dev/nvme0 | grep 'Temperature:' | grep -o '[0-9]*')
fi

$PASSW wird vorher abgefragt. Schleife/Script läuft.

session opened for user root..

dürfte sicher bei Verw. von "sudo" allg. protokolliert werden.

edit

Für cron gibt es Hinweise für Unterdrückung/Umleitung der Meldungen im Netz, bringt mir momentan noch nix.

Wenn ich das richtig sehe, müssten wohl die Meldungen ausgehend der bash umgeleitet werden, also nee.

Werde wohl das Script unter root laufen lassen müssen, zumindest sind dann die aller Sekunden Meldungen kein Thema mehr.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17596

Wohnort: Berlin

Deine Problemlage ist mir nicht ganz klar.

a) Was heißt ständig? Wie oft pro Sekunde? Ist das Intervall zu kurz, oder willst Du sämtliche Logeinträge unterbinden?

b) Startest Du das Script/die Schleife und willst du - beispielsweise - alle Sekunde ein Feedback auf dem Schirm, aber nicht im Log?

In /etc/default/smartmontools kann man das Intervall verstellen; bei mir ist der Default aktiv, der 1800 s ist:

1
2
# uncomment to pass additional options to smartd on startup
#smartd_opts="--interval=1800"

Die Manpage sagt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
       -i N, --interval=N
              Sets the interval between disk checks to N seconds, where N is a decimal integer.  The minimum allowed
              value  is  ten  and the maximum is the largest positive integer that can be represented on your system
              (often 2^31-1).  The default is 1800 seconds.

              Note that the superuser can make smartd check the status of the disks at any time by  sending  it  the
              SIGUSR1 signal, for example with the command:
              kill -SIGUSR1 <pid>
              where <pid> is the process id number of smartd.  One may also use:
              killall -USR1 smartd
              for the same purpose.

Besser als die Übergabe eines Passworts per Script wäre es, in der sudoers-Datei für den entsprechenden User einen Eintrag zu machen, dass er smartmontools with NOPASSWD starten kann.

Die Verwendung von sudo wird immer protokolliert - das dürfte immenser Aufwand sein, das zu unterdrücken - habe ich aber noch nicht versucht, ist also rein spekulativ.

Wenn die Schleife durchlaufen soll, und nicht nur hier und da, dann könntest Du einen cronjob oder systemd-Timer als root einrichten, die das machen, dann wird womöglich weniger geloggt - zumindest kein sudo mehr, vielleicht nützlicher die Temperatur.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7777

Mit sudo kann ich nicht helfen, aber wenn es dir rein um die Temperaturabfrage geht, das ist u.U. auch ganz ohne sudo möglich. Findest du unter /sys/block/nvme*/device/hwmon*/temp*_input. Wenn du nicht über /sys/block/nvme* gehen möchtest, kannst du auch /sys/class/hwmon/hwmon*/name auf nvme abklopfen.

Eigentlich müsste es ein fertiges Tool geben, das Temperaturen ganz ohne sudo anzeigt, solange der Kernel ein interface dafür hat. Kenn ich halt gerade keins. (OK, sensors existiert. Kann sogar JSON ausgeben...)

Marantkurz

(Themenstarter)

Anmeldungsdatum:
7. September 2023

Beiträge: 786

Danke für Eure Antworten!

@user_unknown

Wie oft ist doch egal, aller X Sekunden, füttert YAD, s.Anhang. (Einheiten ignorieren)

Da das Script weitergegeben werden soll will ich es nun so belassen, dass das Höchste der Gefühle die einmalige Eingabe des PW sein soll. Also somit einmalige Protokollierung bei Scriptstart, das ist OK.

@frostschutz

In der Tat.

cat /sys/block/nvme*n1/device/hwmon*/temp1_input

wäre für die internen NVMe auf jeden Fall brauchbar. Es sollen mehrere Möglichkeiten abgedeckt werden.(hatte das weggelassen) Also

  • interne NVMe

  • externe NVMe

  • SATA

Bzgl. /dev/sd* habe ich bisher noch nix einfaches Äquivalentes zu (1.SATA, 2. ext.NVMe)

sudo smartctl -A /dev/sda | grep "194 Temperature" | cut -c 88-89
sudo smartctl -A /dev/sda | grep 'Temperature:' | grep -o '[0-9]*'

finden können.(Also etwa in /sys oder Terminal Tool auf User Ebene was Beides kann)

Mir kam gerade die Idee, das mit Conky im normalem Fenster zu machen.

Bilder

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17596

Wohnort: Berlin

Marantkurz schrieb:

Wie oft ist doch egal, aller X Sekunden, füttert YAD, s.Anhang. (Einheiten ignorieren)

Für die Frage, was zu viele Einträge im Journal für Dich sind, und wie oft Du die Informationen brauchst, ist es erheblich. Auch ob Du es maximal 1x pro Minute brauchst und somit cron eine geeignete Alternative ist.

Da das Script weitergegeben werden soll will ich es nun so belassen, dass das Höchste der Gefühle die einmalige Eingabe des PW sein soll. Also somit einmalige Protokollierung bei Scriptstart, das ist OK.

Gerade wenn das Script weitergegeben werden soll, ist ein Passwort im Script eine fragwürdige Lösung.

Marantkurz

(Themenstarter)

Anmeldungsdatum:
7. September 2023

Beiträge: 786

Für die Frage, was zu viele Einträge im Journal für Dich sind,

Ja, Deswegen hatte ich etwa zur selben Zeit Deines Posts das etwas ergänzt/umformuliert.

der Gefühle die einmalige Eingabe des PW sein soll. Also somit einmalige Protokollierung bei Scriptstart, das ist OK.

Also Script läuft nun als Root Script.(lgw. ohne intern sudo)

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13131

Marantkurz schrieb:

sudo smartctl -A /dev/sda | grep "194 Temperature" | cut -c 88-89
sudo smartctl -A /dev/sda | grep 'Temperature:' | grep -o '[0-9]*'

Das kann man immerhin so optimieren, dass die Ausgabe in eine temporäre Datei geschrieben und dann von da ausgewertet wird. Und wenn Du den Job als Systemd-Service mit Timer einrichtest, dann brauchst Du auch kein sudo.

Marantkurz

(Themenstarter)

Anmeldungsdatum:
7. September 2023

Beiträge: 786

@rklm

Sicher, nur sollte ohne Aufwand startbar sein.(rede nicht von mir)

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13131

Marantkurz schrieb:

@rklm

Sicher, nur sollte ohne Aufwand startbar sein.(rede nicht von mir)

???

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4672

setuid auf smartctl drauflegen wäre eine Möglichkeit um smartctl ohne sudo und Passwort abzufragen. Aber wie sieht es dann mit der Sicherheit aus? Mit setcap habe ich es bisher jedenfalls nicht hinbekommen. Allerdings frage ich smartctl auch nur alle paar Jubeljahre mal ab, und für solche seltenen Gelegenheiten kann ich dann auch das sudo Passwort per Tipperei eingeben.

sudo smartctl -a /dev/sda | awk '/Temp/{print "SSD Temperatur: "$NF}'

Marantkurz

(Themenstarter)

Anmeldungsdatum:
7. September 2023

Beiträge: 786

@trollsportverein

sudo smartctl -a /dev/sda | awk '/Temp/{print "SSD Temperatur: "$NF}'

Bauchbar wäre so die Befehlszeile nicht. Denke, die sollte auch nicht so stehen bleiben.

Das letzte Feld wird ausgegeben.

Ergebnis /dev/sda bei ext.SATA:

SSD Temperatur: 0/60)

ohne awk sieht die Zeile so aus:

194 Temperature_Celsius     0x0022   074   040   000    Old_age   Always       -       26 (Min/Max 0/60)

/dev/sda bei ext.NVMe:

[sudo] Passwort für :         
SSD Temperatur: Celsius
SSD Temperatur: Celsius
SSD Temperatur: Celsius
SSD Temperatur: 0
SSD Temperatur: 0
SSD Temperatur: Celsius
SSD Temperatur: Celsius

setuid auf smartctl drauflegen

Habe mir mal sporadisch was dazu durchgelesn(Alter dazu war mir egal, ging nur ums informieren)

https://stackoverflow.com/questions/9772068/raw-socket-access-as-normal-user-on-linux-2-4

Bin noch beim Überlegen, aber nicht um das anzuwenden, sondern damit herumzuspielen. Vllt. kann Jmd. aus dem Forum noch zu dem Thema was sagen.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4672

Marantkurz schrieb:

@trollsportverein

sudo smartctl -a /dev/sda | awk '/Temp/{print "SSD Temperatur: "$NF}'

Bei mir funktioniert das genau so. Ich habe ja nur uralte Hardware und da ist unter /dev/sda meine alte Samsung 840 PRO zu finden und die gibt da die Temperatur aus, nur die Temperatur und sonst nix in der letzten Spalte. Diese Temperatur ist aber so niedrig, um die brauche ich mir keine Sorgen machen. Läuft ja auch schon viele Jahre und ist bewährt. Und diese alten Samsung Pro Modelle sind auch bekannt sehr langlebig.

Marantkurz

(Themenstarter)

Anmeldungsdatum:
7. September 2023

Beiträge: 786

Ich habe ja nur uralte Hardware

☺ , Ja, war auch nicht als Vorwurf gemeint, vermutete schon, dass das Feld bei Dir nicht da sein kann.

Finde es nicht gut wenn in irgendwelchen Forenbeiträgen, egal in welchem Forum, allg. Anweisungen die eher fraglich auf die Masse passen, gepostet werden. Einfach weil es den Wenigsten was bringt.

Antworten |