Perl выборка данных., fire002, 13-Июн-14, 02:04 [смотреть все]Приветствую здешних обитателей. Нужна помощь людей дружащих с perl Есть такая бяка: http://joxi.ru/aBGaU_3JTJC9PQdgcIQ Отсюда нужно выбирать некоторые параметры, а именно CPU, MEM, IP и PORT (числовые значения), данные получаются командой top -n 1 -b -c .... Собственно на стандартными средствами лини получать не удается, т.к может отличаться строка запуска. Собственно, необходимо что-бы параметры CPU и MEM (9 и 10 столбцы) записывались в текстовый файл, к примеру с названием вида IP:PORT.txt(etc)Печеньки гарантирую) Текстовик с выводом top http://rghost.ru/56344231
|
- Perl выборка данных., Skif, 17:48 , 13-Июн-14 (1)
- Perl выборка данных., fire002, 00:19 , 14-Июн-14 (2)
> awk '{print $9 " " $10}' > Что там сложного-то? Лень, разве что...С выборкой cpu и mem через awk нет, проблема с выборкой IP:port в самой строке запуска, тут уже awk не подходит, ибо значения могут быть в разных столбцах(как показано на скрине).
- Perl выборка данных., михалыч, 15:11 , 14-Июн-14 (4)
- Perl выборка данных., михалыч, 16:26 , 14-Июн-14 (5)
- Perl выборка данных., fire002, 01:01 , 19-Июн-14 (6)
Собственно, скрипт уже написан и работает(почти). #!/usr/bin/perl -w use strict; use warnings; my $put = "/home/stat/"; open FF, "/bin/cat /proc/meminfo \| /usr/bin/head -1 \| /usr/bin/awk '{print \$2}'|"; <FF>=~/(\d+)/; my $m = $1/1024; close FF; open F, "/usr/bin/top -n 1 -b -c \| /bin/grep 'hlds_' \| /bin/grep -v 'SCREEN' \| /bin/grep -v '/bin/sh'|" or die "error: $!"; while (<F>) { chomp; if($_=~/port\s\d+.+ip\s[\d\.]+/) { my $time = time; $_=~/^\s*([^\s]+\s+){8}([^\s]+)\s+([^\s]+)\s+.*port\s(\d+).+ip\s([\d\.]+)/; my $file = "$put$5:$4.txt"; my $cpu = $2; my $mem = $3; $mem = int($mem*$m/100); open US, ">>$file" or die "error: $!"; print US "$time\::$cpu\::$mem\n"; close US; } } close F;Проблема в другом, при ручном запуске скрипта, все отрабатывает нормально. Но когда добавляешь в крон, /usr/bin/perl /home/stat/top.pl Всплывают косяки: /home/stat/top.pl: 2: use: not found /home/stat/top.pl: 3: my: not found /home/stat/top.pl: 5: Syntax error: "(" unexpected
|