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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

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

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

Оффлайн gmen_2016

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

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

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

Оффлайн Azure

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

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3095
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #2 : 02 Декабрь 2016, 13:23:41 »
И ради удовлетворения моего любопытства:
для чего вызывать несколько раз одну и ту же операцию, если данные с нее можно поместить в переменную?
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5659
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
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

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5659
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #5 : 02 Декабрь 2016, 13:59:02 »
Код: Bash
  1. 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

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5659
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Прошу помощи в правке скрипта.
« Ответ #7 : 02 Декабрь 2016, 16:27:15 »
Ради спортивного интереса
Код: Bash
  1. 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.079 секунд. Запросов: 24.