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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Скрипт на #bash'е  (Прочитано 1720 раз)

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

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: Скрипт на #bash\\\'е
« Ответ #15 : 04 Января 2012, 10:56:52 »
ну дак посмотри что у тебя выдает и исправь
у тебя же не такой же комп и не абсолютно такая же система, чтобы тупо копировать, что тебе пишут, надо немного и самому подумать - случится счастье.

Пользователь решил продолжить мысль 04 Января 2012, 10:57:39:
думаю дело в /dev/sdb
а у тебя /dev/sda наверное  ???


гоню, раз выдает на sdb...

Пользователь решил продолжить мысль 04 Января 2012, 11:02:56:
угу, не работает с заданием интервала для вывода iostat, если без него,т.е.

iostat -dk sda | awk '/sda/{printf "%.0f\t%.0f\n",$3,$4}'
то работает, нужно как-то иначе зациклить что-ли...
« Последнее редактирование: 04 Января 2012, 11:02:56 от ⚡ Thunde® ⚡ »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на #bash'е
« Ответ #16 : 04 Января 2012, 11:06:56 »
[Liberty_Prime],
iostat -dk sdb 3 | awk '{print $0}'
iostat -dk sdb 3 | awk '/sdb/{print $0}'
iostat -dk sdb 3 | awk '/sdb/{print $3,$4}'
Это работает?

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: Скрипт на #bash\'е
« Ответ #17 : 04 Января 2012, 11:16:32 »
нет

Пользователь решил продолжить мысль 04 Января 2012, 11:22:00:
Видимо когда задаем интервал, данные не передаются дальше по конвейеру пока не отработает команда целиком. Только не ясно почему же у тебя тогда работает...
« Последнее редактирование: 04 Января 2012, 11:22:00 от ⚡ Thunde® ⚡ »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на #bash'е
« Ответ #18 : 04 Января 2012, 11:29:34 »
нет
Эм... awk на ровном месте не должен тупить, вроде.
Ну, давайте тогда весь вывод в файл, и там уже надо анализировать структуру побайтно.
iostat -dk sda 3 >iostat.log
У мну:
Цитировать
$ lsb_release -sd
Ubuntu 10.04.3 LTS

$ dpkg -l | grep sysstat
ii  sysstat    9.0.6-2    system performance tools for Linux

$ ls -l $(which awk)
lrwxrwxrwx 1 root root 21 2010-09-01 16:00 /usr/bin/awk -> /etc/alternatives/awk

$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 2010-09-01 16:00 /etc/alternatives/awk -> /usr/bin/gawk

$ dpkg -l | grep gawk
ii  gawk    1:3.1.6.dfsg-4build1    GNU awk, a pattern scanning and processing l

$ iostat -dk sda 3 | awk '/sda/{printf "%.0f\t%.0f\n",$3,$4}'
321   62
513   0
85   0
406   0
534   0
112   0
457   0
274   0

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: Скрипт на #bash\\\'е
« Ответ #19 : 04 Января 2012, 11:36:04 »
задача - вывод в коньках, она решена
iostat -dk sda | awk '/sda/{print $3,$4}'просто коньки сами будут вызывать с заданным интервалом...

Пользователь решил продолжить мысль 04 Января 2012, 11:41:53:
ramil@ramil-desktop:~/scripts$ lsb_release -sd
Ubuntu 11.10
ramil@ramil-desktop:~/scripts$ dpkg -l | grep sysstat
ii  sysstat                                10.0.1-1                                system performance tools for Linux
ramil@ramil-desktop:~/scripts$ ls -l $(which awk)
lrwxrwxrwx 1 root root 21 2011-12-02 17:23 /usr/bin/awk -> /etc/alternatives/awk
ramil@ramil-desktop:~/scripts$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 2011-12-02 17:23 /etc/alternatives/awk -> /usr/bin/mawk
ramil@ramil-desktop:~/scripts$ dpkg -l | grep gawk
ramil@ramil-desktop:~/scripts$

gawk нет  ???

Пользователь решил продолжить мысль 04 Января 2012, 11:43:14:
apt-get install gawk
после этого работает.
« Последнее редактирование: 04 Января 2012, 11:43:14 от ⚡ Thunde® ⚡ »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на #bash'е
« Ответ #20 : 04 Января 2012, 11:44:28 »
⚡ Thunde® ⚡, у меня дела обстоят так, что самый первый результат идёт без задержки, и данные получаются некорректными.
Бегло прочитал ман, но так и не понял, как это победить.
Поэтому вот простейший костыль для единичного измерения:
iostat -dk sda 3 2 | awk '/sda/{print $3,$4}' | tail -n1
« Последнее редактирование: 04 Января 2012, 12:18:38 от arcfi »

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: Скрипт на #bash'е
« Ответ #21 : 04 Января 2012, 11:48:31 »
Спасибо, но мне это не нужно, я просто влез в беседу, стало интересно.

В коньках мне достаточно
${color orange}Disk read${alignr}${color orange}Disk write
$color${diskio_read}${alignr}$color${diskio_write}$color
${diskiograph_read /dev/sda 25,145 ff6600 ff6600 }${alignr}${diskiograph_write /dev/sda 25,145 ff6600 ff6600 }
кстати, кажись чуваку это и нужно было... чота я вообще ступил тогда, у самого в коньках рабочее правильное решение, а мы костыль думаем...

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на #bash'е
« Ответ #22 : 04 Января 2012, 12:35:23 »
Да, может быть, я с коньками не сильно дружу, поэтому и откопал утилитку, которая показывает i/o-нагрузку по устройствам.
А тут ещё подводные камни нарисовались.

Оффлайн [Liberty_Prime]

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
  • В трех словах: ♂ ☠  Ubuntu 12.04.3x64
    • Просмотр профиля
Re: Скрипт на #bash'е
« Ответ #23 : 08 Января 2012, 10:49:10 »
Сорри что долго не было - уезжал отдыхать...
iostat -dk sdb 3 | awk '/sdb/{print $3,$4}'
345,68 183,10
0,00 16,00
0,00 54,67
0,00 49,33
0,00 88,00
Ёопст опять не то, нужно одно число так еще и целое
iostat -dk sda 3 2 | awk '/sda/{print $3,$4}' | tail -n1 не выводит ничего...
Мне не просто для коньков надобно... мне надо лдля lua-скрипта, это страшнее.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на #bash'е
« Ответ #24 : 08 Января 2012, 10:54:23 »
[Liberty_Prime], gawk поставьте.

Оффлайн [Liberty_Prime]

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
  • В трех словах: ♂ ☠  Ubuntu 12.04.3x64
    • Просмотр профиля
Re: Скрипт на #bash'е
« Ответ #25 : 08 Января 2012, 11:17:15 »
sudo apt-get install gawk[sudo] password for ss:
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Уже установлена самая новая версия gawk.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 3 пакетов не обновлено.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на #bash'е
« Ответ #26 : 08 Января 2012, 11:56:12 »
sudo update-alternatives --config awk
ls -l /etc/alternatives/awk

Оффлайн [Liberty_Prime]

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
  • В трех словах: ♂ ☠  Ubuntu 12.04.3x64
    • Просмотр профиля
Re: Скрипт на #bash'е
« Ответ #27 : 09 Января 2012, 19:11:43 »
sudo update-alternatives --config awk
[sudo] password for ss:
Есть 2 варианта для альтернативы awk (предоставляет /usr/bin/awk).

  Выбор   Путь        Приор Состояние
------------------------------------------------------------
* 0            /usr/bin/gawk    10        автоматический режим
  1            /usr/bin/gawk    10        ручной режим
  2            /usr/bin/mawk    5         ручной режим

Нажмите enter, чтобы сохранить текущий выбор[*], или введите выбранное число:
ss@Server:~$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 2011-10-09 01:14 /etc/alternatives/awk -> /usr/bin/gawk

 

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