[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ответ: Развлечения с Bash



On 14:19 Mon 26 Jan     , Sergey Kharlamov wrote:
SK> Итак, что сейчас имеем:
SK> Есть папка с mp3. Из этого вытягиваем произвольный файл

SK> #!/bin/bash
SK> ifconfig eth0 | awk '$0 ~ /bytes:/ {print $2}' | cut -d : -f 2   #
SK> получаем значение ifconfig
SK> files=(*); echo "${files[RANDOM%${#files[@]}]}"             # выбираем
SK> произвольный файл из директории

SK> теперь надо его как то сделать чтобы  скрипт следил за ifconfig и
SK> допустим после каждого мега проигрывал произвольный файл
SK> Как это реализовать???

1. запускаем скрипт раз в минуту (из крона, либо в скрипте цикл с паузами 
по N секунд)
2. перед завершением этого скрипта запоминаем в каком-то файле
значение байт взятое из ifconfig (если без крона, то можн в переменной помнить)

3. после запуска скрипта вычисляем дельту между новым и старым значением

delta=$[ $new_value - $old_value ]
(тут только надо обработать переход через 2^31-й (отрицательное значение delta))
и если delta больше определенного значения говорим фразу

if test $delta -gt 1024; then
	speak
fi

что-то в этом духе:

#!/bin/sh

speak_after=1024

prev_bytes=0
while true; do
    current_bytes=`/sbin/ifconfig eth0 | \
        awk '$0 ~ /bytes:/ {print $2}' | cut -d : -f 2`
    delta=$[ $current_bytes - $prev_bytes ]
    if test $delta -gt $speak_after; then
        echo speak $delta
    fi

    prev_bytes=$current_bytes
    sleep 10
done

--
... mpd is off

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment: signature.asc
Description: Digital signature


Reply to: