PDA

Bekijk de volledige versie : Доступ к S.M.A.R.T HDD



bigest
24-11-2007, 08:15
А возможно ли читать параметры SMART подключенного по USB винта?
Чем можно это сделать?

Пробовал скомпилировать прямо на роутере hddtemp отсюда http://wl500g.info/showthread.php?t=10488
Опыт не удался из-за отсутствия в системе и в репозитории gcc. Кто-нибудь делал это? Или не имеет смысла ибо через USB работать не будет?

Oleg
24-11-2007, 08:23
gcc есть. Поставьте buildroot.

Mam(O)n
24-11-2007, 08:49
bigest, в репозитории есть пакет с утилитами, smartmontools называется. Попробуй так:

smartctl -d scsi -a /dev/discs/disc0/disc

bigest
24-11-2007, 09:10
О! По описанию то что нужно! Однако...
Пробуем просмотреть состояние: smartctl -a -d scsi /dev/discs/disc0/disc


smartctl version 5.37 [mipsel-unknown-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Device: IC35L080 AVVA07-0 Version: 0811
Device type: disk
Local Time is: Sat Nov 24 11:58:55 2007 MSK
Device does not support SMART

Пробуем принудительно включить смарт в устройстве: smartctl -s on -d scsi /dev/discs/disc0/disc


smartctl version 5.37 [mipsel-unknown-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

unable to fetch IEC (SMART) mode page [unsupported field in scsi command]
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.


Есть идеи как пробиться к SMART?

bigest
24-11-2007, 09:21
gcc есть. Поставьте buildroot.
Отлично! Попробую если малой кровью не получится. ;)

bigest
24-11-2007, 09:46
А черт, похоже шансов нет. :(


FireWire, USB, and SATA disks/systems

As for USB and FireWire (IEEE 1394) disks and tape drives, the news is not good. They appear to the operating system as SCSI devices but their implementations do not usually support those SCSI commands needed by smartmontools. A consortium associated with IEEE 1394 certified some external enclosures (containing a ATA disk and a protocol bridge) as being compliant to the relevant standards. Even still, that compliance means that they tend to only support the bare minimum of commands needed for device operation (i.e. SMART support is an unsupported extra). Hopefully external USB and Firewire devices will support SAT in the future, see below.

nightrus
24-04-2008, 23:38
на сайте смартмона появилась новость


smartctl has a new option '-d usbcypress'. So you can address USB devices with cypress chips. The chipset contains an ATACB proprietary pass through for ATA commands passed through SCSI commands.


что бы попробовать\проверить, нужно собрать версию из CVS командами


cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge. net:/cvsroot/smartmontools login
# when prompted for a password, just press Enter
cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge. net:/cvsroot/smartmontools co sm5

cd sm5
./autogen.sh
./configure
make
make install


у меня дело дошло только до make, дальше вываливается в Segmentation fault (походу памяти для сборки больше нужно, на ББ собирается без проблем), мож кто соберет?

зы исходники могу запаковать, если к цвсу никак...

Игорь
25-04-2008, 07:41
после праздников попробуем, где-то с пятого мая.

PupsDRVR
25-04-2008, 14:39
на сайте смартмона появилась новость


что бы попробовать\проверить, нужно собрать версию из CVS командами


cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge. net:/cvsroot/smartmontools login
# when prompted for a password, just press Enter
cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge. net:/cvsroot/smartmontools co sm5

cd sm5
./autogen.sh
./configure
make
make install


у меня дело дошло только до make, дальше вываливается в Segmentation fault (походу памяти для сборки больше нужно, на ББ собирается без проблем), мож кто соберет?

зы исходники могу запаковать, если к цвсу никак...

У меня 128 мег на роутере, готов помочь, если это мне ничего не испортит. Подробности того, что надо сделать лучше в личку (я так понял, что надо просто вышеописанное в командной строке роутера исполнить). И что это вообще такое, я не понял? :)

lucifer
29-10-2008, 06:34
В общем сабж.
К USB раутера через SATA-USB переходник подключен SATA-II HDD. Существует ли возможность просмотра таблицы S.M.A.R.T. без отключения девайса от раутера?

Lupo_Alberto
29-10-2008, 07:50
Установить smartmontools


ipkg info smartmontools
Package: smartmontools
Version: 5.38-2
Status: unknown ok not-installed
Section: misc
Architecture: mipsel
maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com>
MD5Sum: 2e45c3a22850f3d4c2d147d8fa8e26fe
Size: 209414
Filename: smartmontools_5.38-2_mipsel.ipk
Source: http://easynews.dl.sf.net/sourceforge/smartmontools/smartmontools-5.38.tar.gz
Description: Utility programs to control and monitor (SMART) built into most modern ATA and SCSI hard disks.

angel_il
29-10-2008, 10:39
В общем сабж.
К USB раутера через SATA-USB переходник подключен SATA-II HDD. Существует ли возможность просмотра таблицы S.M.A.R.T. без отключения девайса от раутера?

никак, S.M.A.R.T. не поддерживается при подключении через USB

lucifer
29-10-2008, 11:40
Установить smartmontools

никак, S.M.A.R.T. не поддерживается при подключении через USB

Вот теперь все предельно ясно :).

angel_il
29-10-2008, 17:25
Вот теперь все предельно ясно :).

да я чего только не пересобрал пока не понял что никто не может в силу ряда причин :)

Lupo_Alberto
29-10-2008, 20:31
Прошу тогда объяснить мне, зачем в репозитарии этот пакет (smartmontools)? Ведь, на сколько мне известно, к роутеру жёсткий диск, кроме как по USB, не подключишь.

bbsc
29-10-2008, 20:49
А еще там есть вот это:
[~]$ ipkg list | grep ffmpeg
ffmpeg - 0.svn20080409-2 - FFmpeg is an audio/video conversion tool.
Интересно, зачем?

al37919
29-10-2008, 20:50
Прошу тогда объяснить мне, зачем в репозитарии этот пакет (smartmontools)?
про wl700gE не забываем. К тому же в optware тулчейн oleg --- один из 32 на данный момент... http://ipkg.nslu2-linux.org/feeds/optware/

wyatt
03-03-2009, 04:48
Привет. Меня заинтересовала возможность программно замерить температуру винчестера подключенного к роутеру по усб. Подскажите, это вообще возможно?

cbap
03-03-2009, 07:58
вообще? Возможно (smart) под винду же есть такие программы, только не уверен что через USB можно их получить, то есть контроллер usb со стороны диска должен уметь их отдавать

По моему так.

ABATAPA
03-03-2009, 08:42
Привет. Меня заинтересовала возможность программно замерить температуру винчестера подключенного к роутеру по усб. Подскажите, это вообще возможно?

Далеко не всегда, многое зависит от применяемого контроллера. Не все они могут транслировать соотв. команды в другое подмножество. На большинстве кабелей у Вас получить S.M.A.R.T.-информацию (в том числе - температуру) не получится.
Равно и как управлять режимами диска через hdparm. На единичных - возможно, но потребуются еще и последние (или достаточно свежие) версии соотв. утилит.

Hohmach
03-03-2009, 09:29
http://www.hdsentinel.com/usbharddisks.php

ABATAPA
03-03-2009, 10:12
http://www.hdsentinel.com/usbharddisks.php

Вы его пробовали?
Чудес не бывает, и тут - не исключение. Если USB-(S|P)ATA контроллер не транслирует команды - то и эта "поделка" ничего не покажет. Да и показывает он не больше (а меньше), чем доступно в Linux через интерфейсы ядра (/proc, /sys) и утилиты типа smartmontools...
Кроме того, разумеется, сборки под MIPS у него нет.
Вот что это "поделие" (free-версия под Linux) показывает для USB-HDD (ZIV-2, IDS_ZIV_U2.1, Cypress Semiconductor):



HDD Device 1: /dev/sdb
HDD Model ID : FUJITSU MHV2120AH
HDD Serial No: ?
HDD Revision : ?
HDD Size : 114473 MB
Interface : SCSI
Temperature : Unknown °C
Health : Unknown %
Performance : Unknown %
Power on time:
Est. lifetime:


На получение такой информации с двух дисков (с системного SATA - указанные данные перечислены) ему потребовалось 10 минут.

Hohmach
03-03-2009, 11:13
Я дал эту ссылку не для того чтобы кто-то пробовал, а из-за таблицы "Known USB Bridges"

ABATAPA
03-03-2009, 11:35
Я дал эту ссылку не для того чтобы кто-то пробовал, а из-за таблицы "Known USB Bridges"

Понятно. Но полагаться, что то, что там помечено галочками, будет работать со S.M.A.R.T.ом, не стОит, как видите. :)


PS: Поставил последнюю Windows-версию. USB-HDD ZIV-2, idVendor=04b4, idProduct=6830 (первый в списке "совместимости").
Сам диск S.M.A.R.T. поддерживает.

Вижу в окне:



The status of the hard disk is unknown.
This USB storage device does not provide more information about itself.

Please use the "Report" menu "Send test report to developer" option to help us determining if it is possible to detect and display more information.

Please visit the "Hardware" and "Support -> FAQ" sections on www.hdsentinel.com for details.


Так что, и тут никаких чудес.

Hohmach
03-03-2009, 12:08
Понятно. Но полагаться, что то, что там помечено галочками, будет работать со S.M.A.R.T.ом, не стОит, как видите. :)
Что согласитесь странно, ведь Hard Disk Sentinel придуман для мониторинга SMART status. Может вы не из-под рута запускали?

ABATAPA
03-03-2009, 12:17
Что согласитесь странно, ведь Hard Disk Sentinel придуман для мониторинга SMART status. Может вы не из-под рута запускали?

Смеетесь? :)

По-моему, Вы не уловили суть - большинство контроллеров (я лично иных не видел) не умеют транслировать расширенные ATAPI команды (в том числе для работы с S.M.A.R.T., и не только) через транспортный слой поверх USB. Т.е. данные контроллеры выглядят как обычный Mass Storage, и никакие расширенные команды с ними не возможны.
Так что "придуман" он, может, для этого и был, но трудно мониторить то, чего нет.
К слову, большинство платных "волшебных" лучше или хуже программ реализуют ту же или меньшую функциональность, что и их бесплатные аналоги, и в этом нет ничего удивительного - все стандартизировано, объем получаемой информации и подмножество команд - ограничены, сверх этого - только "рюшечки".

Hohmach
03-03-2009, 12:31
Под рукой только одно устройство было:

HDD Device 4: /dev/sdc
HDD Model ID : Hitachi HTS543216L9A300
HDD Serial No: 080621FB0200LCC2BA8A
HDD Revision : FB2OC40C
HDD Size : 152628 MB
Interface : Oxford/SAT USB/ATA
Temperature : 23 В°C
Health : 99 %
Performance : 100 %
Power on time: 0 days, 0 hours, 38 minutes
Est. lifetime: more than 1000 days
Сработало без всяких задержек.

ABATAPA
03-03-2009, 13:15
Interface : Oxford/SAT USB/ATA


USB-HDD?
Значит, то же самое Вам покажет и smartctl - Вам повезло.

Hohmach
03-03-2009, 13:38
USB-HDD?Ага. Только про оксфорд он врет, на самом деле это: VID: 152D, PID: 2329 JMicron USB-SATA bridge - JM20329

ABATAPA
03-03-2009, 13:58
Ага. Только про оксфорд он врет, на самом деле это: VID: 152D, PID: 2329 JMicron USB-SATA bridge - JM20329

Ну, учитывая, что пости многие (или почти все;) ) производители выпускают для других OEM-версии, и уж тем более - комплектующие, то порою однозначно назвать трудно - что это. И каждый выбирает свой вариант. :)

cbap
10-05-2009, 08:36
по поводу SMRT через usb

тут выше было сказано , да и я так тоже считал, что smart параметры через usb не передаются. Странно вот что , что тот же самый винт подцепленный к винде - прекрасно передает ей свои smart параметры через usb! Everest замчательно все прочитала и температуру показала.

Так что господа, надо наверное читать маны для того что бы мониторить состояние винта. Может кто уже пользует смарттулс которе есть в репозитари?

smartctl -d scsi -a /dev/discs/disc0/disc

в ответе должно быть написано что поддерживается SMART

lucifer
10-05-2009, 14:24
Так что господа, надо наверное читать маны для того что бы мониторить состояние винта. Может кто уже пользует смарттулс которе есть в репозитари?

Из репозитория ставить не пробовал, но виндовая smartctl все мои usb-харддиски (правда их всего 2) однозначно признает неподдерживаемыми.
А чтение манов привело к убеждению, что вопрос не в самом стандарте USB, а в реализациях USB-контроллеров, вернее мостов (s/p)ata=>usb, кои ежели и не все, то в большинстве своих бюджетных инкарнаций онной фиче не обучены :(.

P.S. Это лишь мое мнение...

cbap
10-05-2009, 16:05
...кои ежели и не все, то в большинстве своих бюджетных инкарнаций онной фиче не обучены :(.

печально, значит контроллер который в роутере их не понимает ?

lucifer
10-05-2009, 16:21
печально, значит контроллер который в роутере их не понимает ?

Собственно я не корректно выразил свою мысль: не контроллер роутера (о его функциональности я не имею представления, но, думаю, он тут ни при чем), а мост (s/p)ata=>usb в карманах...

P.S. К сожалению я не спец в этой теме (скорее ламер :)), потому вышесказанное не есть истина в последней инстанции.

andyblack
08-06-2010, 05:33
RT-N16, HDD WDC SATA 400GB, подключен через внешний вох ST-Lab (S230) с контроллером JMicron JM20339.
Прошивка от энтузиастов 1.9.2.7-rtn-r1607

Озадачился температурой HDD,- на форуме не нашел, поэтому пишу. Может кому пригодится...

Установил пакет smartmontools.

Доступ к смарт через smartctl:
smartctl -d usbjmicron /dev/discs/disca/disc -a

параметр "usbjmicron" взял из
smartctl -h:

-d TYPE, --device=TYPE
Specify device type to one of: ata, scsi, sat[,N][+TYPE], usbcypress[,X], usbjmicron[,x][,N], usbsunplus, marvell, areca,N, 3ware,N, hpt,L/M/N, megaraid,N, cciss,N, test

Для получения информации по температуре:
smartctl -d usbjmicron /dev/discs/disca/disc -l scttemp |grep Temperature

Вот Чего выводит:

Current Temperature: 55 Celsius
Power Cycle Min/Max Temperature: 28/58 Celsius
Lifetime Min/Max Temperature: 28/59 Celsius
Under/Over Temperature Limit Count: 0/0
SCT Temperature History Version: 2
Temperature Sampling Period: 1 minute
Temperature Logging Interval: 1 minute
Min/Max recommended Temperature: 0/60 Celsius
Min/Max Temperature Limit: 1/85 Celsius
Temperature History Size (Index): 128 (49)
Index Estimated Time Temperature Celsius

dred2k
26-01-2011, 14:24
Имеем:
1. ASUS RT-N16 с прошивкой 1.9.2.7-rtn-r2515
2. Внешнюю коробку для винта USB 2.0.
3. Винт WD на 120 гиг с убитым смартом.
4. Коробка с винтом отлично определяется биосом, видится в виндах, работает. Однако, "виснут" операции запроса состояния смарт (к примеру, в программах типа HDD Tune). У винта смарт не пашет точно, но возможно, коробка имеет аналогичный глюк, поскольку винт с явно работающим смартом в ней ведет себя аналогично.

Пробую подключить сей девайс к роутеру. Несколько попыток обращения, заканчивается все неудачей и неподключением. К сожалению, лог сейчас не приведу (выложу позже).

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

vectorm
26-01-2011, 15:06
Пробую подключить сей девайс к роутеру. Несколько попыток обращения, заканчивается все неудачей и неподключением. К сожалению, лог сейчас не приведу (выложу позже).

Вопрос: кто-нибудь знает волшебные слова, которые нужно сказать системе, чтобы она не пыталась "глубоко" опрашивать сей девайс, а подключить его, несмотря на "неответы на некоторые вопросы" ?
Роутеру глубоко параллельно состояние SMART диска.
Причина скорее всего в "убитой" дисковой коробке, либо острой нехватке питания диску. Вот он и не определяется.
Еще бы лог роутера показали при подключении диска - можно было бы точнее сказать. А так - гадание на кофейной гуще...

dred2k
26-01-2011, 15:32
Роутеру глубоко параллельно состояние SMART диска.
Причина скорее всего в "убитой" дисковой коробке, либо острой нехватке питания диску. Вот он и не определяется.
Еще бы лог роутера показали при подключении диска - можно было бы точнее сказать. А так - гадание на кофейной гуще...

Да, забыл - питание внешнее.
В том-то и дело, что коробка под виндой работает, не дает лишь работать со смартом.
Лог чуть позже, там были записи вида "requesting address .... failed", точно не помню, поэтому лучше выложу лог чуть позже.
Нашел файлик вида hotplug2.rules, возможно на тему... Изучаю.

vectorm
26-01-2011, 16:05
Да, забыл - питание внешнее.
В том-то и дело, что коробка под виндой работает, не дает лишь работать со смартом.
Лог чуть позже, там были записи вида "requesting address .... failed", точно не помню, поэтому лучше выложу лог чуть позже.
Нашел файлик вида hotplug2.rules, возможно на тему... Изучаю.
Разбирайтесь с питанием коробки. Почитайте пару страниц вниз - ка минимум я уже давал советы в аналогичных случаях.

max2007
01-04-2011, 15:11
Здравствуйте ,с недавних пор стал обладателем RT-N16 , роутер очень нравится , прошивка от интузиастов , ну и софт из скрипта "установка програм для чайников " , также осилил установку и настройку nShaper
Всё работает всё устраевает ,вот токо возник один вопросик на который пока не могу найти ответ на форуме.
Как собственно посмотреть температур процесора и HDD подключенного к роутеру ,может есть какието команды или софт какой дополнительный ставить нада ? Направте на путь истенный , или ткните носом в тему , а то чёто поиск по форуму ничё внятного не показывает (хотя есть вариан что не то ищу или не там ) Спасибо !!! :o

don-pedro
02-04-2011, 08:02
$ smartctl --all /dev/discs/disc0/disc -d scsi
smartctl 5.40 2010-10-16 r3189 [mipsel-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

Device: WD 1600BEV External Version: 1.04
scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0
>> Terminate command early due to bad response to IEC mode page
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
terminate called after throwing an instance of 'int'
Aborted

wl500gp-v1
1.9.2.7-d-r2381
Винда smart этого диска показывает.
Что посоветуют знатоки?

ykpacmb
02-04-2011, 10:16
После smartctl добавь параметр smartctl -T permissive,
а лучше посмотри help: smartctl -h

don-pedro
02-04-2011, 10:27
После smartctl добавь параметр smartctl -T permissive,
Добавлял. Без толку.

$ smartctl -a /dev/discs/disc0/disc -d scsi -T permissive
smartctl 5.40 2010-10-16 r3189 [mipsel-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

Device: WD 1600BEV External Version: 1.04
scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0
>> Terminate command early due to bad response to IEC mode page

Error Counter logging not supported
scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0
Device does not support Self Test logging



а лучше посмотри help: smartctl -h
Смотрел. И, не поверите, гуглил.

ykpacmb
02-04-2011, 11:05
Вот у меня работает такая конструция:
smartctl -T permissive -d sat /dev/discs/disc0/disc -l scttemp |grep Temperature

don-pedro
02-04-2011, 12:59
Вот у меня работает такая конструция:
smartctl -T permissive -d sat /dev/discs/disc0/disc -l scttemp |grep Temperature
О!
-d sat у мя тоже заработало. А на последней Олеговской прошивке, если мне склероз не изменяет, не работало.

don-pedro
02-04-2011, 12:59
Вот у меня работает такая конструция:
smartctl -T permissive -d sat /dev/discs/disc0/disc -l scttemp |grep Temperature
О!
-d sat у мя тоже заработало. А на последней Олеговской прошивке, если мне склероз не изменяет, не работало.

brain-ripper
26-06-2011, 13:11
Народ, кто-нибудь может собрать последнюю версию smartmontools для роутера?

S.M.A.R.T для 2Tb диска Hitachi всунутого в USB бокс Thermaltake Max нормально достается smartctl'ом версии 5.41 на десктопе, при этом тулза сообщает, что этот диск есть ее базе данных, а последняя версия для роутера из репозитария имеет версию 5.40 и утверждает, что этого диска в ее БД нет и SMART не показывает.
думаю дело именно в этом...

МИНЗДРАВ
10-02-2012, 11:01
А мне надо число парковок головок определить, параметр 193 Load/Unload Cycle count. Покажет его smart из репов?

ryzhov_al
10-02-2012, 11:27
А мне надо число парковок головок определить, параметр 193 Load/Unload Cycle count. Покажет его smart из репов?А что мешает попробовать самому? В чём препятствие?

МИНЗДРАВ
14-02-2012, 07:05
А что мешает попробовать самому? В чём препятствие?Что-то он не пашет:

[admin@WL-500gP_V2 root]$ smartctl -d usbjmicron /dev/discs/disca/disc -a
smartctl: can't load library 'libuClibc++.so.0'
[admin@WL-500gP_V2 root]$
[admin@WL-500gP_V2 root]$ ipkg list | grep libuClibc++.so.0
[admin@WL-500gP_V2 root]$

Что можно предпринять?

ryzhov_al
14-02-2012, 07:12
$ ipkg list | grep libuClibc++.so.0Что можно предпринять?Ход мысли верный, только возьмите фильтр несколько шире:
$ ipkg list | grep -i libuclibc++и далее по смыслу.

МИНЗДРАВ
14-02-2012, 08:01
Сработало!
Теперь вот что пишет:


[admin@WL-500gP_V2 root]$ smartctl -d scsi /dev/sda -a
smartctl 5.40 2010-10-16 r3189 [mipsel-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

Device: HP Desktop HD BD07 Version: 1003
Serial number: WCAZA7208008
Device type: disk
Local Time is: Tue Feb 14 12:09:49 2012 MSK
Device does not support SMART

Error Counter logging not supported
No self-tests have been logged
[admin@WL-500gP_V2 root]$
Ещё что-нибудь придумать можно. чтоб число парковок увидать?

vectorm
14-02-2012, 19:43
Сработало!
Теперь вот что пишет:


[admin@WL-500gP_V2 root]$ smartctl -d scsi /dev/sda -a
Device does not support SMART
Error Counter logging not supported
No self-tests have been logged
[admin@WL-500gP_V2 root]$
Ещё что-нибудь придумать можно. чтоб число парковок увидать?

AFAIK not all usb converters let the SMART info to pass through. May be you have bad luck...
Надеюсь, всё понятно? Минута поиска ...

МИНЗДРАВ
15-02-2012, 14:52
Надеюсь, всё понятно? Минута поиска ...Ладно! На десктопе проверим.

MMX2
10-03-2012, 13:54
Вопрос не совсем по теме форума, наверное, но спросить больше мне негде и сам не нашел. Пишу свой первый скрипт (который собирает данные о месте на дисках, температуру дисков и т.д. Складывает это все в файл. Так вот сам скрипт состоит из 30 строк вида:
Echo "блаблабла" >> файл
Т.е. После выполнения каждой строки идет запись в файл. Как сделать так, чтобы в файл писалось в самом конце скрипта, после выполнения всех строк?
Всем спасибо за ответы!

tempik
10-03-2012, 14:37
Вопрос не совсем по теме форума, наверное, но спросить больше мне негде и сам не нашел. Пишу свой первый скрипт (который собирает данные о месте на дисках, температуру дисков и т.д. Складывает это все в файл. Так вот сам скрипт состоит из 30 строк вида:
Echo "блаблабла" >> файл
Т.е. После выполнения каждой строки идет запись в файл. Как сделать так, чтобы в файл писалось в самом конце скрипта, после выполнения всех строк?
Всем спасибо за ответы!
Например так ("ttt" файл срипта, v_ttt файл вывода скрипта):

[XXX@XXXXXX root]$ cat /usr/local/sbin/v_ttt
tttttt
tktktktk
kfjfhgfhg
[XXX@XXXXXX root]$ cat /usr/local/sbin/ttt
#!/bin/sh

cat << EOF > /usr/local/sbin/v_ttt
`echo "tttttt"`
`echo "tktktktk"`
`echo "kfjfhgfhg"`
EOF

VA_DOS
10-03-2012, 16:06
А зачем так сложно? Можно ведь и по-проще, без порождения лишних процессов:


#!/bin/sh

cat << EOF > /usr/local/sbin/v_ttt
tttttt
tktktktk
kfjfhgfhg
EOF

tempik
10-03-2012, 16:51
А зачем так сложно? Можно ведь и по-проще, без порождения лишних процессов:


#!/bin/sh

cat << EOF > /usr/local/sbin/v_ttt
tttttt
tktktktk
kfjfhgfhg
EOF

ИМХО подразумевалось что каждая строка какая нибудь команда сбора информации и ее вывод записываем в файл ... В вашем случае такая конструкция вообще бессмысленна ... проще так:

#!/bin/sh

echo "
tttttt
tktktktk
kfjfhgfhg" > /usr/local/sbin/v_ttt
Я просто продемонстрировал сам принцип построения таких конструкций ...

MMX2
10-03-2012, 19:40
Например так ("ttt" файл срипта, v_ttt файл вывода скрипта):

[XXX@XXXXXX root]$ cat /usr/local/sbin/v_ttt
tttttt
tktktktk
kfjfhgfhg
[XXX@XXXXXX root]$ cat /usr/local/sbin/ttt
#!/bin/sh

cat << EOF > /usr/local/sbin/v_ttt
`echo "tttttt"`
`echo "tktktktk"`
`echo "kfjfhgfhg"`
EOF



Большое спасибо! В моем случае не совсем так, но разобрался. Не совсем понятно только, как в выводе команды

`free | awk 'NR==4 {print $2/1024"Mb,", "<b>"$3"</b>""Kb used"}'`
округлить вывод $2 до целого числа?

`free | awk 'NR==4 OFMT=="%.0f" {print $2/1024"Mb,", "<b>"$3"</b>""Kb used"}'`

не помогает:(

VA_DOS
11-03-2012, 09:17
Например, вот так:


free | awk 'NR==4 {printf "%.0fMb, <b>%dKb used</b>\n", $2/1024, $3}'

MMX2
11-03-2012, 15:11
Например, вот так:


free | awk 'NR==4 {printf "%.0fMb, <b>%dKb used</b>\n", $2/1024, $3}'

Спасибо большое! Работает!!!

MMX2
12-03-2012, 09:26
Очередной ламерский вопрос:
В скрипте вот такого вот вида:

#!/bin/sh

cat << EOF > /usr/local/sbin/v_ttt
`echo "tttttt"`
`echo "tktktktk"`
` uptime | awk 'kfjfhgfhg'`
EOF

Наличие последней строчки "EOF" ни на что не влияет, и, более того, она выводится в файл /usr/local/sbin/v_ttt.
Где мне криворукому покрутить?

VA_DOS
12-03-2012, 12:22
Странно - не должно, это ж маркер конца блока вывода (который должен один-в-один совпадать с маркером начала).

MMX2
13-03-2012, 13:51
Очередной вопрос по скриптостроению:)
В результате выполнения команды я получаю вот такую вот строчку:

HDD Summary:
/tmp/mnt/Photos: Mounted to /dev/discs/disca/part1 ,740.3G (57%) used, 565.2G (43%) free

Как ее можно привести к виду:


HDD Summary:
/Photos: Mounted to /disca ,740.3G (57%) used, 565.2G (43%) free
Т.е. урезать вывод на определенное количество символов?
Спасибо!

VA_DOS
13-03-2012, 14:19
echo "/tmp/mnt/Photos: Mounted to /dev/discs/disca/part1 ,740.3G (57%) used, 565.2G (43%) free" | cut -d/ -f1,4,7-
Похоже?

MMX2
13-03-2012, 14:32
echo "/tmp/mnt/Photos: Mounted to /dev/discs/disca/part1 ,740.3G (57%) used, 565.2G (43%) free" | cut -d/ -f1,4,7-
Похоже?

ОНО! Спасибо!

MMX2
14-03-2012, 10:30
Представляю вниманию счастливых владельцев маршрутизаторов от асуса скрипт RTnMonitor 0.1
Предисловие. Есть rt-n16, к которому подключено 3 жестких диска (один с фото, один с фильмами, один под /opt и swap), установлен Transmission, smartmontools, скрип autostop (остановка дисков при простое).
Задача: собрать статистику о состоянии маршрутизатора на одной, легкой по весу и доступной из интернета странице.
Для этого наваял сей скрипт. Т.к. это мой первый опыт скриптописания, прошу не судить строго:) Подозреваю, что это же можно было реализовать элегантней и менее привязанным к конкретной конфигурации маршрутизатора.
Отдельную благодарность хочется выразить участникам VA_DOS и tempik, которые оперативно отвечали на мои вопросы и просьбы о помощи.
Что делает скрипт – каждые 5 минут собирает данные от df –h (fdisk -l не используется, т.к. он раскручивает остановленные диски), с файла статистики Transmission, с лога остановки\запуска диска autostop (скрипт подравил, добавил 18-й строкой /bin/echo "No action was taken" > $LOGFILE), данные о температуре smartmontools и складывает это в файл /opt/share/www/temp.htm (можно менять в настройках скрипта).
Страничка с данными должна выглядеть так:


Last Update: 14:19:12
Uptime: 3:53, hours
HDD Summary:
/Photos: Mounted to /disca/
740.3G (57%) used, 565.2G (43%) free

/discb_1: Mounted to /discb/
96.3G (94%) used, 6.4G (6%) free

/Films: Mounted to /discc/
652.4G (75%) used, 217.9G (25%) free

SWAP: Total: 494Mb, 560Kb used
Current HDD States:
/disca:
State: Stand-by (1)     
Temperature: 32° (was 32°)
Last action: Mar 14 10:31:59: Cooled down...

/discb:
State: Active (0)     
Temperature: 40° (was 41°)
Last action: No action was taken

/discc:
State: Stand-by (1)     
Temperature: 31° (was 31°)
Last action: Mar 14 10:32:00: Cooled down...

Torrent
Current Ratio: 1.50

Буду благодарен за любые советы и обратную связь:)

MercuryV
19-04-2012, 20:59
Несложная вроде бы задача: получать письма от демона smartd (на рутере используется новый репозиторий entware).
С sendmail из прошивки (из busybox) легко и просто не вышло, установил msmtp, настроил рабочий конфиг.
Для smartd пришлось написать скрипт-прослойку для отправки почты, ничего лучше я не придумал


]$ cat /opt/bin/mail_smartd
#!/bin/sh
TEMP_F=/opt/tmp/smartd.mail
FROM="smartd on WNR3500L <router@domain.tld>"
echo "From: $FROM" > $TEMP_F
echo To: $SMARTD_ADDRESS >> $TEMP_F
#echo "CC: addres2@domain.tld" >> $TEMP_F
echo -e "Subject: $SMARTD_SUBJECT\n\n" >> $TEMP_F
cat >> $TEMP_F
echo "--- information ---" >> $TEMP_F
smartctl -a -d $SMARTD_DEVICETYPE $SMARTD_DEVICE >> $TEMP_F

/opt/bin/msmtp -t < $TEMP_F

#rm $TEMP_F


соответственно, smartd вызывается с опцией -M exec /opt/bin/mail_smartd

MercuryV
21-04-2012, 11:16
А есть ли способы попроще уговорить smartd отправлять уведомления по почте?
(в условиях rtn - entware)

mr. Silver
10-09-2012, 08:12
Вопрос к знатокам.
С помощью какой программы можно узнать температуру подключенного HDD?
Имеется ввиду конечно через WEB интерфейс или PUTTY.

ryzhov_al
10-09-2012, 08:38
Вопрос к знатокам.
С помощью какой программы можно узнать температуру подключенного HDD?Можно via S.M.A.R.T., но почему-то не все USB-контейнеры "отдают" эту информацию:

$ ipkg install smartmontools
$ smartctl --all /dev/hda | grep Temperature
Или даже так, с поминутной историей за восемь последних часов:

$ smartctl --xall /dev/sda
...
Current Temperature: 38 Celsius
Power Cycle Min/Max Temperature: 30/45 Celsius
Lifetime Min/Max Temperature: 37/49 Celsius
Under/Over Temperature Limit Count: 0/0
SCT Temperature History Version: 2
Temperature Sampling Period: 1 minute
Temperature Logging Interval: 1 minute
Min/Max recommended Temperature: 0/60 Celsius
Min/Max Temperature Limit: -41/85 Celsius
Temperature History Size (Index): 478 (135)

Index Estimated Time Temperature Celsius
136 2012-09-10 03:40 38 *******************
... ..(299 skipped). .. *******************
436 2012-09-10 08:40 38 *******************
437 2012-09-10 08:41 39 ********************
... ..( 21 skipped). .. ********************
459 2012-09-10 09:03 39 ********************
460 2012-09-10 09:04 38 *******************
461 2012-09-10 09:05 39 ********************
... ..( 7 skipped). .. ********************
469 2012-09-10 09:13 39 ********************
470 2012-09-10 09:14 38 *******************
... ..( 24 skipped). .. *******************
17 2012-09-10 09:39 38 *******************
18 2012-09-10 09:40 37 ******************
19 2012-09-10 09:41 38 *******************
... ..(115 skipped). .. *******************
135 2012-09-10 11:37 38 *******************
...

mr. Silver
10-09-2012, 13:24
Можно via S.M.A.R.T., но почему-то не все USB-контейнеры "отдают" эту информацию:


Спасибо, установил, посмотрел.
И хоть у меня похожий винт только на 500gb лог он не ведет.
Ну и так достаточно для контроля

dansoftware
12-08-2013, 16:48
Недавно у меня отказал внешний HDD, подключенный через USB к коробочке. Сейчас все перенастраиваю заново. Решил немного модифицировать «rrd.sh», что бы иметь возможность следить за здоровьем жесткого диска с помощью SMART. Во вложении небольшой патч, добавляющий вызов утилиты smartctl из комплекта smartmontools.

МИНЗДРАВ
02-06-2014, 10:48
Вот как заработало:

[admin@WL-500gP_V2 root]$ smartctl -T permissive -d sat -a /dev/sda

Как можно сделать, чтоб изменение температуры, выводилось в syslog_ng ?

dansoftware
02-06-2014, 11:47
МИНЗДРАВ, для этого необходимо установить и настроить утилиту smartd.

gSpot
24-03-2016, 17:34
GitHub: https://github.com/gSpotx2f/smarthtml

В связи с приобретением RT-N56U B1 вспомнил про скрипт для мониторинга SMART-параметров диска подключенного к роутеру, который когда-то писал, кажется, ещё для старого WL500gp... Скрипт получает данные из вывода smartctl, сравнивает их с сохранёнными значениями предыдущей проверки и создаёт html-страницу (/opt/share/www/smart.html) с таблицей атрибутов, отображая в ней последние изменения параметров. Также пишет в лог при изменении критически важных атрибутов и может отсылать сообщение по e-mail (sendmail). Опционально использует rrdtool для графика температуры (вообще, скрипт позволяет создавать rrd-графики для любых SMART-атрибутов, но, ИМХО, практический смысл имеет лишь температура). Для RRD присутствуют несколько вариантов пресетов создания баз, в зависимости от интервала обновления данных. Скрипт полностью совместим с ash и awk из busybox.
Перед началом использования, естественно, необходимо установить smartmontools и rrdtool из Entware:


opkg install smartmontools rrdtool

Сам скрипт нужно положить, к примеру, в /opt/usr/bin/smarthtml.sh (после этого не забыв: chmod +x /opt/usr/bin/smarthtml.sh). Затем добавить в cron для регулярного запуска... По умолчанию база rrd создаётся с шагом в 3 часа, а следовательно:


10 */3 * * * /opt/usr/bin/smarthtml.sh

При первом запуске скрипт сам создаст каталог /opt/var/smarthtml/ и необходимые файлы для работы.
Параметры вызова:


/opt/usr/bin/smarthtml.sh # запуск основной процедуры выполнения (запускается cron'ом по расписанию)
/opt/usr/bin/smarthtml.sh resetwarn # сброс предупреждения после изменения критического параметра
/opt/usr/bin/smarthtml.sh resetcount # сброс счётчиков изменений параметров
/opt/usr/bin/smarthtml.sh makerrdgraph # только отрисовка графиков rrd без проверки SMART и без изменения данных
/opt/usr/bin/smarthtml.sh mailtest # отправка тестового email (в случае использования e-mail оповещений)

P.S. Параметры sendmail выставлены под использование openssl (настраивал для прошивки Padavan'а, хотя и в других с busybox sendmail настройки должны быть вроде идентичны)...

Про cgi-модуль smarthtml.cgi... Он позволяет обновлять данные SMART прямо с веб-страницы в любой момент, что может быть удобно для мониторинга в реальном времени. Эта процедура не затрагивает rrd (rrd обновляется cron'ом по расписанию), а поэтому может производиться в любое время когда требуется получить текущие данные. Для работы модуля необходимо в настройках веб-сервера указать выполнение .cgi файлов с помощью /bin/sh.
На примере busybox_httpd (в прошивке Padavan'а его нет, есть в "энтузиастской") нужно добавить след. строку в конфиг:


*.cgi:/bin/sh

Для lighttpd нужно установить модуль mod_cgi:


opkg install lighttpd-mod-cgi

далее в конфиге модуля /opt/etc/lighttpd/conf.d/30-cgi.conf изменить строку


".cgi" => "/opt/bin/perl",

на


".cgi" => "/bin/sh",

это заставит сервер выполнять .cgi файлы программой /bin/sh...
Сам smarthtml.cgi нужно положить в /opt/share/www/cgi-bin/ и разрешить на выполнение chmod +x /opt/share/www/cgi-bin/smarthtml.cgi. Ну и, собственно, в "главном" скрипте smarthtml.sh установить переменную USE_CGI_MODULE=1.

Есть один нюанс с правами доступа... Доступ к дисковым устройствам (/dev/sda и пр.) доступен лишь пользователю root (admin), в случае если ваш веб-сервер запускается с правами суперюзера (что в принципе нехорошо, но для embedded-систем является обычным делом), то нет никаких проблем. Если же сервер, скажем, публичный и запускается с правами специально созданного непривелегированного юзера, то можно использовать утилиту sudo из Entware для работы cgi-сценария. В smarthtml.cgi нужно выставить USE_SUDO=1. Затем установить и настроить sudo:


opkg install sudo

Далее настраиваем через visudo:


/opt/sbin/visudo

откроется /opt/etc/sudoers во всеми горячо любимом vi, там необходимо добавить след. строки (предположим, что веб-сервер запускается под юзером www):


admin ALL=(ALL) ALL
www ALL=(admin) NOPASSWD:/opt/bin/smartctl, /opt/usr/bin/smarthtml.sh

вторая строка разрешит пользователю www запускать /opt/bin/smartctl и /opt/usr/bin/smarthtml.sh с правами admin без ввода пароля (это важно!), что необходимо для выполнения .cgi сценария...
В случае успешной настройки при "клике" по ссылке "Check Now" в верхней части страницы таблица SMART должна обновиться вместе с датой последней проверки в заголовке таблицы.

Выглядит как-то так:
10220

_______________

Changelog:

0.8.3
1. Для совместимости с различными версиями awk (mawk и пр.) расширенные регулярные выражения заменены на базовые, из кода убрана ф-ция gensub().
2. Исправлено несколько несущественных ошибок в awk-коде.
3. Незначительные изменения в html и js.

ryzhov_al
25-03-2016, 06:51
Здо́рово, спасибо. Переезжайте на хобот (http://forum.ixbt.com/topic.cgi?id=14:63015:4125#4125), всё комьюнити по падавановской прошивке — там.


PS Я, в свою очередь, тоже перепиливаю (https://github.com/DontBeAPadavan) свои старые решение под падавановскую прошивку.

gSpot
28-03-2016, 19:33
Переезжайте на хобот (http://forum.ixbt.com/topic.cgi?id=14:63015:4125#4125), всё комьюнити по падавановской прошивке — там.
Это да, тему на хоботе изучал основательно перед покупкой RT-N56... :)

P.S. Обновил версию скрипта. Добавил в архив .cgi модуль (smarthtml.cgi) для веб-сервера, он позволяет снять текущие показания SMART и обновить данные прямо с веб-страницы (добавил описание в предыдущем посте).

Omega
22-05-2016, 22:54
Всем доброго времени суток! Роутер ASUS RT-N56U. Начал умирать мой HDD (перегрев).

Позвонил в саппорт - посоветовали купить новый (гарантия иссякла в 2013 году еще).
Решил побаловаться с cron и поставить чек температуры на каждые 2-3 часа:

1. Установил smartmontools из opkg.

Feb 4 12:37:48 smartd[791]: Device: /dev/sda [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 89 to 90
2. По инструкции запилил в /etc/storage/started_script.sh:

### Start cron daemon
[ -z "`pidof crond`" ] && /usr/sbin/crond
3. Создал файл /etc/storage/cron.d/hddtemp.sh - внутри:

#!/usr/bin/env bash

log_entry=$(/opt/bin/smartctl -A /dev/sdb | egrep Temperature_Celsius | awk '{print "HDD1 TEMP: " $10}')

logger "$log_entry"
4. Далее:

chmod 700 /etc/storage/cron.d/hddtemp.sh
5. Ну и на последок crontab -e:

SHELL=/bin/sh
MAILTO=root
HOME=/
* * * * * /etc/storage/cron.d/hddtemp.sh
6. При вызове скрипта (/etc/storage/cron.d/hddtemp.sh) пишется в лог температура HDD:

Feb 5 01:55:01 admin: HDD1 TEMP: 35
http://forum.ixbt.com/topic.cgi?id=14:62022:2949#2949 ;)