The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Поиск в файле., !*! razor, 30-Июл-04, 13:16  [смотреть все]
Помогите написать скрипт на Bash.

Есть файл с трафиком пользователей(допустим /home/traffic) вот такого вида.

Active Accounted actions on tty39, User fdfg41 Priv 1
Task ID 16843, Network Accounting record, 00:49:51 Elapsed
task_id=16843 start_time=1091172163 protocol=ip addr=10.0.0.49 pre-session-time=3 pre-bytes-in=113 pre-bytes-out=72
pre-paks-in=4 pre-paks-out=4 bytes_in=533551 bytes_out=2081293 paks_in=5584 paks_out=5373 elapsed_time=2933

Через пустую строку эти записи повторяются для каждого пользователя.
Как видите очень много информации. Меня интересует параметр bytes_out=2081293

Есть файл (/home/username) в котором записано имя пользователя чей трафик нужно узнать.

В скрипте получаем имя пользователя из файла с помощью
user=$(cat /home/username)

А как прописать чтобы скрипт искал в файле /home/traffic этого пользователя (допустим fdfg41) и после этого искал инфу о трафике(bytes_out=2081293), затем записать эту строчку в переменную info, а затем вырезать из нее 10 первых символов(bytes_out=) и записать в др. переменную(trafik=2081293).
Которая запишет его трафик в файл echo $trafik > /home/${user}.traf

Помогите советом.

  • Поиск в файле., !*! Brainbug, 14:06 , 30-Июл-04 (1)
    >Помогите написать скрипт на Bash.
    >
    >Есть файл с трафиком пользователей(допустим /home/traffic) вот такого вида.
    >
    >Active Accounted actions on tty39, User fdfg41 Priv 1
    > Task ID 16843, Network Accounting record, 00:49:51 Elapsed
    > task_id=16843 start_time=1091172163 protocol=ip addr=10.0.0.49 pre-session-time=3 pre-bytes-in=113 pre-bytes-out=72
    >pre-paks-in=4 pre-paks-out=4 bytes_in=533551 bytes_out=2081293 paks_in=5584 paks_out=5373 elapsed_time=2933
    >
    >Через пустую строку эти записи повторяются для каждого пользователя.
    >Как видите очень много информации. Меня интересует параметр bytes_out=2081293
    >
    >Есть файл (/home/username) в котором записано имя пользователя чей трафик нужно узнать.
    >
    >
    >В скрипте получаем имя пользователя из файла с помощью
    >user=$(cat /home/username)
    >
    >А как прописать чтобы скрипт искал в файле /home/traffic этого пользователя (допустим
    >fdfg41) и после этого искал инфу о трафике(bytes_out=2081293), затем записать эту
    >строчку в переменную info, а затем вырезать из нее 10 первых
    >символов(bytes_out=) и записать в др. переменную(trafik=2081293).
    >Которая запишет его трафик в файл echo $trafik > /home/${user}.traf
    >
    >Помогите советом.
    Mozno tak.

    #!/bin/sh

    user=$1
    data=$2

    grep -A3 "User $user" data | grep bytes_out | cut -d = -f 2 > ${user}.traf

    P.S. Pri uslovii 4to strukturi zapisei fiksirovannije. Podumai kak odnozna4no identificirovat polzovatela. V mojem varinate ne vsegda budet korektno rabotat(esli est polzov. test, test1 i test2, to ukazav test budut vidani vse 3).

    • Поиск в файле., !*! razor, 17:35 , 30-Июл-04 (2)

      >Mozno tak.
      >
      >#!/bin/sh
      >
      >user=$1
      >data=$2
      >
      >grep -A3 "User $user" data | grep bytes_out | cut -d = -f 2 > ${user}.traf

      помогло 8-))


      >P.S. Pri uslovii 4to strukturi zapisei fiksirovannije. Podumai kak odnozna4no identificirovat polzovatela.
      >V mojem varinate ne vsegda budet korektno rabotat(esli est polzov. test,
      >test1 i test2, to ukazav test budut vidani vse 3).
      С этим поблем нет так как у всех пользователей свои уникальные имена. не повторяющиеся.

      Спасибо.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру