У меня есть жесткий диск во внешнем корпусе, подключенном к серверной установке 14.04 кабелем USB 2. Периодически процесс сценария Bash проверяет, что правильный диск подключен с помощью lsblk, собирает серию файлов и копирует их на диск.
Очень часто диск не подключен, кажется, что он вступил в какой-то спящий режим, из которого он очень медленно реагирует. lsblk не возвращает никаких данных, и мой скрипт отвечает так, как будто ни один диск не подключен.
Я наблюдал это за пределами скрипта, иногда я проверю доступные диски с помощью fdisk -l с двумя вариантами результата:
Перед возвратом деталей внешнего накопителя команда займет гораздо больше времени, чем обычно. В этой ситуации выполнение команды сразу же после этого вернет все результаты с обычной скоростью. Команда запускается медленно, и внешний накопитель вообще не будет отображаться на выходе. Если я снова запустил команду, диск появится на выходе как обычно. Кажется, что в первый раз он не ответил достаточно быстро.Есть ли команда, которую я могу надежно использовать в сценарии Bash, чтобы убедиться, что внешний диск «бодрствует» и готов ответить?
Предполагаю, что я мог бы использовать fdisk -l и перенаправлять на /dev/null, но я подозреваю, что есть более подходящая команда.
Если это применимо, это жесткий диск Seagate Desktop ST1000DM003 в корпусе SATA Evo Labs E-U3F.