Как разбудить несмонтированный внешний диск внутри скрипта?

У меня есть жесткий диск во внешнем корпусе, подключенный к серверу 14.04 с помощью кабеля USB 2. Периодически Bash-сценарий проверяет, подключен ли правильный диск, используя lsblk, собирает серию файлов и копирует их на диск.
Диск обычно был подключен и включен в течение нескольких дней, прежде чем этот процесс происходит.

Очень редко диск не подключен, кажется, он вошел в какой-то режим ожидания, из-за которого он очень медленно реагирует. lsblk не возвращает никаких сведений о диске, и мой сценарий отвечает, как будто диск не подключен.

Я наблюдал это и за пределами скрипта, иногда я проверяю доступные диски с fdisk -l с двумя вариантами результата:

  1. Эта команда займет намного больше времени, чем обычно, перед возвратом сведений о внешнем диске. В этой ситуации повторное выполнение команды сразу после этого вернет все результаты с обычной скоростью.
  2. Команда выполняется медленно, и внешний диск вообще не будет указан в выходных данных. Если я запускаю команду снова, диск появляется на выходе как обычно. Просто кажется, что в первый раз он не отреагировал достаточно быстро.

Есть ли команда, которую я могу надежно использовать в скрипте Bash, чтобы убедиться, что внешний диск "проснулся" и готов ответить?

Я полагаю, я мог бы использовать fdisk -l и перенаправить на /dev/null но я подозреваю, что есть более подходящая команда.

Если он нужен, то это жесткий диск Seagate для настольных ПК ST1000DM003 в корпусе EATA Labs E-U3F SATA.

0 ответов

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