Unixery & daemon worship 🔥


It's a Unix system! I know this!

Kurze smartd Config

Eine kurz und knappe smartd.conf, die für mich den Zweck erfüllt:

Speicherort:

  • OmniOS: /etc/opt/ooce/smartmontools/smartd.conf
  • FreeBSD: /usr/local/etc/smartd.conf
  • Linux: /etc/smartd.conf
# Ignore temperature and power-on hours reports in syslog.
# Send mail on SMART failures or when Temperature is > 50 Celsius.
# Monitor all attributes, enable automatic Attribute autosave, and
# start a short self-test every day between 2-3am, and a long self test
# Saturdays between 3-4am.
DEVICESCAN -a -I 194 -I 231 -I 9 -W 0,0,50 -S on -s (S/../.././02|L/../../6/03) -m root@localhost

Kaum schreibe ich das, habe ich in einem neuen Server das Problem, dass die M.2 SSDs immer mal wieder die 50 °C knacken. Deshalb eine Alternative, bei der zuerst Default-Einstellungen für alle Laufwerke getroffen werden, dann für bestimmte Laufwerke die Einstellungen angepasst werden und am Schluss die Einstellungen auf alle Laufwerke angewendet werden:

# Default settings
# Ignore temperature and power-on hours reports in syslog.
# Send mail on SMART failures or when temperature is >= 42 Celsius.
# Monitor all attributes, enable automatic attribute autosave, and
# start a short self-test every day between 2-3am, and a long self test
# Saturdays between 3-4am.
DEFAULT -a -I 194 -I 231 -I 9 -W 0,0,42 -S on -s (S/../.././02|L/../../6/03) -m root@localhost

# change max temperature to 60 Celsius on SSDs
/dev/rdsk/c3t0d0s0 -W 0,0,60
/dev/rdsk/c3t1d0s0 -W 0,0,60

# apply settings to all devices
DEVICESCAN

Dazu noch ein kleines Skript, das die Devices der SSDs ausgibt:

#!/bin/bash

# List all devices
devices=$(smartctl --scan | awk '{print $1}')

# Iterate through each device and check its type
for device in $devices; do
    info=$(smartctl -i $device)
    model=$(echo "$info" | grep "Device Model" | awk -F: '{print $2}')
    rotation_rate=$(echo "$info" | grep "Rotation Rate" | awk -F: '{print $2}')

    if [[ $rotation_rate == *"Solid State Device"* ]]; then
        echo "SSD: $device, Model:$model"
    else
        echo "HDD: $device, Model:$model"
    fi
done