Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Прошу помощи в правке скрипта.  (Прочитано 1177 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gmen_2016

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Прошу помощи в правке скрипта.
« : 02 Декабря 2016, 12:25:10 »
Мониторится с помощью smarttools (ubuntu 16.04) диски (смарт, время работы и т.д.) вывод команды для HDD и SSD отличаються, поэтому пришлось писать скрипт с условиями.вот скрипт.
Код: (bash) [Выделить]
smart= `sudo smartctl -A /dev/sda |
       grep -i ssd`
if [ -z "$smart" ] then
    sudo smartctl -A /dev/sda |
    grep "Power_On_Hours_and_Msec" |
    awk -F" " '{print $10}' |
    tr 'h' '\n' |
    head -n -1
else
    sudo smartctl -A /dev/sda |
    grep "Power_On_Hours" |
    nawk -F" " '{print $10}'
fi
но при выполнении его выдает ошибку
Код: (xml) [Выделить]
head: неверный ключ — «A»
По команде «head --help» можно получить дополнительную информацию.
awk: cannot open fi (No such file or directory)
231: команда не найдена

не могу понять в чем дело.

Заранее спасибо.
« Последнее редактирование: 02 Декабря 2016, 13:05:04 от Azure »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #1 : 02 Декабря 2016, 13:09:09 »
  • форматируйте код, как можно вообще разобраться в каше?
  • пропущен «;» после if
  • пробел между «=» и «`» недопустим
Проще будет если Вы напишите что Вы хотите получить, откуда и в каком виде.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #2 : 02 Декабря 2016, 13:23:41 »
И ради удовлетворения моего любопытства:
для чего вызывать несколько раз одну и ту же операцию, если данные с нее можно поместить в переменную?
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #3 : 02 Декабря 2016, 13:31:27 »
И ради удовлетворения моего любопытства:
Это как жаловаться на несовершенство Вселенной… ;D
Из того что я вижу результат получается одной строкойsudo smartctl -A /dev/sda | sed -n '/Power_On_Hours/s/.*\s//p'
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн gmen_2016

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #4 : 02 Декабря 2016, 13:42:12 »
Дело в том что если в системе стоит SSD то он выводит время работы диска в таком формате "6596h+06m+58.880s" а если стоит HDD обычный то время работы диска выводит "32000" вот в связи с этим хотелось бы сначала делать проверку на диск и если SSD то время работы диска обрезать до буквы "h".  В связи с этим и усложнился скрипт.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #5 : 02 Декабря 2016, 13:59:02 »
Код: (bash) [Выделить]
sudo smartctl -A /dev/sda | sed '/Power_On_Hours/! d;s/.*\s//;s/h+\S*$//'
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн gmen_2016

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #6 : 02 Декабря 2016, 15:00:54 »
Спасибо, огромное. Действительно получилась короткая и рабочая команда )
Вопрос решен.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #7 : 02 Декабря 2016, 16:27:15 »
Ради спортивного интереса
Код: (bash) [Выделить]
sudo smartctl -A /dev/sda | sed -nr '/Power_On_Hours/s/.*\s([0-9]+).*/\1/p'
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн gmen_2016

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #8 : 02 Декабря 2016, 18:30:32 »
И этот скрипт работает, сейчас буду вставлять его в UserParameters zabbix-a.

 

Страница сгенерирована за 0.043 секунд. Запросов: 25.