Остановить вращающийся внутренний диск

Предположим, у нас есть такой файл:

$ cat path/to/file/FILE_PREFIX_20150730.dsv
2015-07-29|0100
2015-07-30|0200
2015-07-30|0300
2015-07-31|0400

Теперь посмотрите, что делает ваша команда (немного исправленная):

$ grep `date +%Y-%m-%d --date='1 day ago'` path/to/file/FILE_PREFIX_`date +%Y%m%d --date='1 day ago'`.dsv  | grep -v 'ERROR' | cut -d "|" -f 2 | sed 's/^0/27/'
27200
27300

Короче говоря, она просматривает файл, имя которого основано на вчерашней дате, path/to/file/FILE_PREFIX_20150730.dsv. Он ищет любую строку в этом файле, в которой упоминается вчерашняя дата в форме 2015-07-30. Затем удаляется любая строка, которая также содержит символы ERROR. Оставшиеся строки делятся на поля на основе символа |. Извлекается второе поле строки. Если это второе поле начинается с нуля, то ноль заменяется на 27.

3
30.01.2019, 10:26
1 ответ

Не только раздражает! Возможно, через несколько месяцев привод сдохнет.

Пока я обнаружил, что вам нужно изменить уровень APM , чтобы разрешить приостановку дисков, установив:

hdparm -B 127 /dev/sdX

Где 127 на самом деле является максимальным значением, позволяющим приостановить работу дисков (замедление ).


Затем вы можете изменить значение приостановки с помощью:

hdparm -S 241 /dev/sdX

Из справочной страницы:

Значения от 241 до 251 задают от 1 до 11 единиц по 30 минут, что дает время ожидания от 30 минут до 5,5 часов.


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

Примерно так должно работать:

[Unit]
Description=hdparm sleep
After=suspend.target

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -S 241 -B 127 /dev/sda

[Install]
WantedBy=multi-user.target suspend.target

Сохраните его как root в:

/lib/systemd/system/hdparm.service

Затем вам нужно будет активировать его с помощью:

systemctl enable hdparm.service

Используйте этот служебный файл только в качестве примера, внимательно прочитайтеhdparmсправочную страницу !

4
27.01.2020, 21:21

Теги

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