crontab для предотвращения жесткого диска USB от вращения вниз

Я хочу предотвратить свой жесткий диск, внутренний диск, внешне присоединенный через прикрепление USB, от вращения вниз. Я не вижу способа скорректировать APM через hdparm, таким образом, я предполагаю, что это ограничено встроенным микропрограммным обеспечением прикрепления. Это вращает диск:

sudo dd if=/dev/sdc of=/dev/null count=1 skip=$RANDOM

Но когда я поместил то же самое в crontab через

sudo crontab -e

и

* * * * * dd if=/dev/sdc of=/dev/null count=1 skip=$RANDOM

ничего не происходит. Да, я действительно проверял, является ли диск в /dev/sdc. Я не знаю, релевантна ли эта информация, но я несколько раз редактировал crontab, и в каждый раз, когда это предложило сохранить в другом файле по умолчанию, за которым я следовал. Я не уверен, является ли это корректным использованием skip=$RANDOM читать из случайного блока для препятствования чтению кэш.

Кроме того, как я могу удостовериться, что я постоянно нацелен на корректный диск через несколько начальных загрузок или другие заказы включения других устройств, вместо того, чтобы быть нацеленным для того независимо от того, что заканчивает тем, что было /dev/sdc? Я думаю что-то как

dd if=(findmnt -rn -S UUID=number_from_blkid -o SOURCE) of/dev/null count=1 skip=$RANDOM

но я не знаю, как вложить возврат вводного оператора во внешний оператор. И даже если бы я мог, это возвратиться /dev/sdX2, где X любая буква, которая это, оказывается, и 2 единственный применимый раздел. Другой зарезервированный Windows. Это менее изящно, чем плоскость sdX.

1
задан 15 November 2016 в 05:50

1 ответ

Проблемы

  1. Это выполняет использование оболочки /bin/sh, нет /bin/bash, так $RANDOM вероятно, не работает
  2. Если Вы не устанавливаете PATH в Вашем crontab файл, это не будет знать где вещи как dd (или в решении ниже, bash) расположены
  3. Если Вы хотите сделать это с помощью UUID, намного более простой путь состоит в том, чтобы использовать /dev/disk/by-uuid/THE-UUID

Решение

  1. Узнайте файл устройств под /dev/disk/by-uuid путем поиска его и проверки, что Вы не получаете ошибок с dd (замена THE-UUID с фактическим UUID):

    ls -alF /dev/disk/by-uuid
    sudo dd if=/dev/disk/by-uuid/THE-UUID of=/dev/null count=1 skip=$RANDOM
    
  2. Править root crontab к (замена THE-UUID с фактическим UUID):

    * * * * * /bin/bash -c 'dd if=/dev/disk/by-uuid/THE-UUID of=/dev/null count=1 skip=$RANDOM'
    
2
ответ дан 7 December 2019 в 13:40

Другие вопросы по тегам:

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