Zatserkovnyy Posted March 30, 2018 Share Posted March 30, 2018 Добрый день. По USB 3.0 подключен внешний диск с внешним питанием, который не засыпает и все время крутит блины (даже после извлечения). Мне посоветовали команду "hdparm -S 12 /dev/sdX" для перехода в спящий режим через 60 сек, если нет обращений к диску. Как реализовать эту команду автозапуском, чтобы при перезагрузке роутера снова не вводить ее вручную? Можно обойтись без OPKG и прописать ее в startup-config? Giga III, NDMS v2.11.C.0.0-1. Quote Link to comment Share on other sites More sharing options...
Mamay Posted March 30, 2018 Share Posted March 30, 2018 Коли доступа на работе к роутеру не имею, отвечу вопросом на вопрос. А вы проверяли наличие в прошивке утилиты hdparm? Этим я отвечаю на ваш второй вопрос... Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 Нет, не проверял. И судя по вашему хитрому взгляду, прошивка не имеет этой утилиты. Для меня программирование - темный лес. Единственное, что я хочу - чтобы через n-ое кол-во времени диск переходил в спящий режим. Уверен, что сделать это возможно, но как, через что, и c помощью этого ли форума - не знаю. И мне за несколько дней вопросов и ответов не попался еще ни один человек, который мог бы внятно ответить на мой вопрос и помочь (а я уверен, что там все делается буквально на раз-два). И чувствую, что так и буду дальше по крупицам с разных форумов собирать информацию, выучу все языки программирования и из графического дизайнера переквалифицируюсь в программиста. Quote Link to comment Share on other sites More sharing options...
Mamay Posted March 30, 2018 Share Posted March 30, 2018 Кем бы вы не были в реальной жизни, умение искать никак не зависит от вашей профессии. Тут программистов, как вы выражаетесь ровно полтора штуки. Остальные просто проходили мимо... Тыц Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 Обычно так и делаю - сначала ищу готовые решения, т.к. они гораздо быстрее реализовываются на практике, чем создавать тему. Находил и читал по ссылке, которую вы дали, но там там нет ответа на вопрос. Там рекомендуют либо не отключать совсем, либо физически выключить. У меня другой вопрос. Quote Link to comment Share on other sites More sharing options...
sergeyk Posted March 30, 2018 Share Posted March 30, 2018 47 минут назад, Zatserkovnyy сказал: Добрый день. По USB 3.0 подключен внешний диск с внешним питанием, который не засыпает и все время крутит блины (даже после извлечения). Мне посоветовали команду "hdparm -S 12 /dev/sdX" для перехода в спящий режим через 60 сек, если нет обращений к диску. Как реализовать эту команду автозапуском, чтобы при перезагрузке роутера снова не вводить ее вручную? Можно обойтись без OPKG и прописать ее в startup-config? Giga III, NDMS v2.11.C.0.0-1. Без opkg это сейчас невозможно сделать. Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 (edited) 2 минуты назад, sergeyk сказал: Без opkg это сейчас невозможно сделать. Отлично. Значит мне надо включить opkg в роутере (как это сделать - в базе знаний нашел, прочту), а далее как сделать автозагрузку команды? Не важно какая ФС у внешнего винта для установки opkg? Сейчас HFS+ (есть возможность в NTFS форматнуть). Или, если возможно, покажите где можно прочитать об автозагрузке команд в opkg. Найти не могу, честно, иначе бы не мучил. Edited March 30, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
Mamay Posted March 30, 2018 Share Posted March 30, 2018 11 минуту назад, Zatserkovnyy сказал: Отлично. Значит мне надо включить opkg в роутере (как это сделать - в базе знаний нашел, прочту), а далее как сделать автозагрузку команды? Не важно какая ФС у внешнего винта для установки opkg? Сейчас HFS+ (есть возможность в NTFS форматнуть). Или, если возможно, покажите где можно прочитать об автозагрузке команд в opkg. Найти не могу, честно, иначе бы не мучил. Попытаюсь кратко. Поищите по форуму как установить entware. После установки оного вам нужно будет установить злополучную утилиту hdparm и потом в cron запилить вашу команду. Простите за вас гуглить не буду. Неудобно с телефона... Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 (edited) 33 минуты назад, Mamay сказал: Попытаюсь кратко. Поищите по форуму как установить entware. После установки оного вам нужно будет установить злополучную утилиту hdparm и потом в cron запилить вашу команду. Простите за вас гуглить не буду. Неудобно с телефона... Спасибо. Правильно понял, что после установки entware, устанавливаю две утилиты - hdparm и cron, потом в конфиге cron прописываю строку "hdparm -S 12 /dev/sdX" и все это дело будет автоматически стартовать после каждой перезагрузки роутера? Или нужна строчка "@reboot hdparm -S 12 /dev/sdX"? Чтобы при каждой перезагрузке запускалась команда. Или ее в crontab вписывать надо? Edited March 30, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 30, 2018 Share Posted March 30, 2018 38 минут назад, Zatserkovnyy сказал: Спасибо. Правильно понял, что после установки entware, устанавливаю две утилиты - hdparm и cron, потом в конфиге cron прописываю строку "hdparm -S 12 /dev/sdX" и все это дело будет автоматически стартовать после каждой перезагрузки роутера? Или нужна строчка "@reboot hdparm -S 12 /dev/sdX"? Чтобы при каждой перезагрузке запускалась команда. Или ее в crontab вписывать надо? К чему такие сложности - создаете в /opt/etc/init.d файл с именем S100hdparm.sh - chmod 755 S100hdparm.sh и перегружаете роутер. 1 Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 (edited) 1 час назад, vasek00 сказал: К чему такие сложности - создаете в /opt/etc/init.d файл с именем S100hdparm.sh - chmod 755 S100hdparm.sh и перегружаете роутер. А куда вписывать "hdparm -S 12 /dev/sdX"? В файл S100hdparm.sh прописать "- chmod 755" или "- chmod 755 S100hdparm.sh"? Или S100hdparm.sh - это и будет команда на сон, где 100 - секунды? Хотя сомневаюсь. Или в файле S100hdparm.sh прописываем #!/opt/bin/sh hdparm -S 12 /dev/sdX chmod 755 S100hdparm.sh Edited March 30, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 30, 2018 Share Posted March 30, 2018 Сам файл S100hdparm.sh #!/bin/sh hdparm -S 12 /dev/sda1 Далее выполнить chmod 755 S100hdparm.sh Далее проверить ls -l 2 Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 Огромное спасибо. Буду пробовать! Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted March 30, 2018 Share Posted March 30, 2018 1 час назад, vasek00 сказал: Сам файл S100hdparm.sh #!/bin/sh hdparm -S 12 /dev/sda1 Далее выполнить chmod 755 S100hdparm.sh Далее проверить ls -l Только не sda1, а просто sda. 2 Quote Link to comment Share on other sites More sharing options...
Mamay Posted March 30, 2018 Share Posted March 30, 2018 Тяжёлая артиллерия подтянулась. Ну вы поняли, вектор вам задан...))) Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 (edited) Установил OPKG (на ext4.. кстати, только ext3/ext4 пригодна для OPKG?), установил Entware, инсталлировал hdparm, закинул .sh-файл, все прошло гладко, но.. что-то не останавливается. Полная остановка происходит только тогда, когда вытаскиваю usb-кабель, либо выключаю роутер Edited March 30, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 30, 2018 Author Share Posted March 30, 2018 (edited) Когда посылаю команду напрямую через Терминал, все работает так, как надо (пробовал и -Y и -S), а вот с автозапуском .sh не работает. Что я делаю не так? Единственное, OPKG ставил на флешку, сейчас попробую на HDD поставить.. может что-то с таймингами, флешка-то быстрее грузится (и видно в журнале что она sdb, а sda еще не подгрузились) и дает команды в то время, когда второй HDD только разгоняется.. ну это так, догадки. Edited March 30, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
sergeyk Posted March 31, 2018 Share Posted March 31, 2018 14 минуты назад, Zatserkovnyy сказал: В общем, после перезагрузки команда автоматом не запускается, приходится вручную. Как это исправить? Или какие еще варианта автозапуска есть? Проблема, скорее всего, в том, что в момент запуска этого скрипта диск еще не обнаружен системой. Лучше использовать hook-скрипты, которые вызываются по событиям от системы: https://github.com/ndmsystems/packages/wiki/Opkg-Component В частности, вам лучше обрабатывать события в /opt/etc/ndm/fs.d, который вызывается при монтировании ($1=start) разделов. Тогда команда будет отрабатывать не только при старте, но и при горячем подключении диска. 2 Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 31, 2018 Author Share Posted March 31, 2018 (edited) Вчера диск уходил в сон по команде и после одной перезагрузки. Сегодня ни в какую не хочет даже по команде через ssh. Уже час крутит блины, хотя команда была выполнена. Может диск проводить самодиагностику? Сколько оа может продолжаться? Диск Hitachi 2 Тб. Есть команда отключения самодиагностики? Если да, то ее добавить строчкой после hdparm? Edited March 31, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 31, 2018 Author Share Posted March 31, 2018 (edited) 1 час назад, sergeyk сказал: Проблема, скорее всего, в том, что в момент запуска этого скрипта диск еще не обнаружен системой. Лучше использовать hook-скрипты, которые вызываются по событиям от системы: https://github.com/ndmsystems/packages/wiki/Opkg-Component В частности, вам лучше обрабатывать события в /opt/etc/ndm/fs.d, который вызывается при монтировании ($1=start) разделов. Тогда команда будет отрабатывать не только при старте, но и при горячем подключении диска. Мне кажется, что дело в другом. Выше написал предположение.. Т.к. по команде -Y блины останавливает, а команду -S вроде как выполняет, но диск все равно чем-то занят) Edited March 31, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 31, 2018 Share Posted March 31, 2018 (edited) 6 часов назад, Zatserkovnyy сказал: Содержимое файла всего из двух строк #!/bin/sh hdparm -S 12 /dev/sda Edited March 31, 2018 by vasek00 2 Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 31, 2018 Author Share Posted March 31, 2018 (edited) 43 минуты назад, vasek00 сказал: Содержимое файла всего из двух строк #!/bin/sh hdparm -S 12 /dev/sda Ок. Закинул .sh-файл, ввожу в терминале chmod 755 S100hdparm.sh - пишет вот что: А вот так вроде бы прошло.. по-крайней мере не ругается: Edited March 31, 2018 by Zatserkovnyy Quote Link to comment Share on other sites More sharing options...
Zatserkovnyy Posted March 31, 2018 Author Share Posted March 31, 2018 Победил! Все-таки проблема была в офлайн-селф-тесте, который не давал диску уйти в сон. Установил smartmontools, но этот диск не хотел смарт-статус отображать, хотя другой подключенный - без проблем. Через -d sat добрался-таки, выключил офлайн сканирование, и все заработало как надо. Последний скрин с последнего сообщения рабочий, где надо было путь прописать до S100hdparm.sh. Всем спасибо, кто помогал и направлял! Quote Link to comment Share on other sites More sharing options...
Niko nik Posted September 20, 2020 Share Posted September 20, 2020 (edited) Здравствуйте у меня подключено 2 HDD подскажите как правильно сделать запись для нескольких дисков в S100hdparm.sh У меня для одного HDD я прописывал так: #!/bin/sh hdparm -S 120 /dev/sda а как для второго или третьего прописать или для всех сразу? И потом часто после выключения роутера имена дисков меняются был cda а стал cdb или cdd как все эти диски прописать? Edited September 20, 2020 by Niko nik Quote Link to comment Share on other sites More sharing options...
vasek00 Posted September 20, 2020 Share Posted September 20, 2020 / # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 19712 19712 0 100% / ... /dev/sda1 481296380 443464668 37831712 92% /tmp/mnt/01D.......80 /dev/sda3 4671018 780763 3636508 18% /tmp/mnt/fc5.....d401 /dev/sda3 4671018 780763 3636508 18% /opt /dev/sdb1 126636028 125564460 1071568 99% /tmp/mnt/01D......B60 /dev/sdb2 185930748 175608208 10322540 94% /tmp/mnt/01D.....9960 / # df | grep sd | awk '{print $1}' /dev/sda1 /dev/sda3 /dev/sda3 /dev/sdb1 /dev/sdb2 / # / # for name_sd in `df | grep sd | awk '{print $1}' | sed 's/\(^.\{8\}\).*$/\1/' | sed -n 'G; s/\n/&&/; /^\([ - ~]*\n\).*\n\1/d; s/\n//; h; P' ` ; do echo "$name_sd"; done /dev/sda /dev/sdb / # Как то так Quote Link to comment Share on other sites More sharing options...
Niko nik Posted September 21, 2020 Share Posted September 21, 2020 ~ # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 15616 15616 0 100% / tmpfs 127356 0 127356 0% /dev tmpfs 127356 212 127144 0% /tmp /dev/mtdblock/7 2048 384 1664 19% /storage /dev/sda2 5465885 18014398509439612 5212117 830% /tmp/mnt/bfefcf53-6f80-d601-a0e7-ca536f80d601 /dev/sda5 7869435 1615181 5829858 22% /tmp/mnt/f43c1f32-8280-d601-603c-1f328280d601 /dev/sda2 5465885 18014398509439612 5212117 830% /opt /dev/sdb1 976760828 46741696 930019132 5% /tmp/mnt/0000ECC10000EA34 ~ # df | grep sd | awk '{print $1}' /dev/sda2 /dev/sda5 /dev/sda2 /dev/sdb1 ~ # ~ # for name_sd in `df | grep sd | awk '{print $1}' | sed 's/\(^.\{8\}\).*$/\1/' | sed -n 'G; s/\n/&&/; /^\([ - > ~]*\n\).*\n\1/d; s/\n//; h; P' ` ; do echo "$name_sd"; done sed: unmatched '/' ~ # /dev/sda -sh: /dev/sda: Permission denied ~ # /dev/sdb -sh: /dev/sdb: Permission denied ~ # Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.