Lm-датчики: Выполните определенные команды, когда температура пойдет выше/ниже пределов

Трудно дать определенный ответ без более подробного описания ошибки, однако, это действительно кажется, что Ваш mirrorlist файл устарел или неправильно сконфигурирован в некотором роде.

Я записал быстрый сценарий для обновления файла без использования pacman:

#!/bin/bash

MIRRORS_URL="http://www.archlinux.org/mirrorlist/?country=United+States&protocol=ftp&protocol=http&ip_version=4"
MIRRORS_FILE=/etc/pacman.d/mirrorlist

wget -O $MIRRORS_FILE.rank $MIRRORS_URL
sed -i 's/^#//' $MIRRORS_FILE.rank
rankmirrors -n 6 $MIRRORS_FILE.rank > $MIRRORS_FILE

Короче говоря тот сценарий вытянет обновленный список зеркал, оценит их в порядке скорости и сохранит список в Вашем mirrorlist файле.

Данный URL предполагает желание зеркал в Соединенных Штатах, с помощью ftp или http и только IPv4. Можно изменить это путем движения в http://www.archlinux.org/mirrorlist и настройки его, как Вы считаете целесообразным.

После того как сценарий завершается, затем выполненный

sudo pacman -Syy

и надо надеяться это работает!

Править:

Между прочим, я забыл упоминать, что powerpill был удержан от использования.

2
13.06.2012, 01:32
1 ответ

Это зависит от того, что является выводом sensors. Если Ваш что-то как мой:

% sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +44.0°C  (high = +70.0°C)

затем можно использовать следующий сценарий, адаптируя его соответственно. Кроме того, TEMP_STOP и TEMP_START, необходимо изменить регулярное выражение, которое фильтрует строку от sensors Вы хотите использовать. Это - параметр к grep, в temp функция.

#!/bin/bash

TEMP_STOP=98
TEMP_START=90

temp() {
    sensors | grep '^temp1:' | sed -e 's/.*: \+\([+-][0-9.]\+\)°C.*$/0\1/'
}

while true; do
    TEMP=$(temp)
    # keep waiting until temp is too hot
    while [ $(echo "$TEMP < $TEMP_STOP" | bc) = 1 ]; do
        sleep 10
        TEMP=$(temp)
    done

    echo temp $TEMP too hot, stopping.

    # now wait for it to cool down...
    while [ $(echo "$TEMP > $TEMP_START" | bc) = 1 ]; do
        sleep 10
        TEMP=$(temp)
    done

    echo ok now, restarting...
done
1
27.01.2020, 22:23

Теги

Похожие вопросы