|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Проблема с обработкой условий Perl |
|
Любой язык - Проблема с обработкой условий Perl
|
Пользователь Сообщения: 51 |
Добрый день.
Есть скрипт (вот его часть): unless(`smartctl -a /dev/sdb | grep Power_On_Hours` =~ m/- ([0-9a-zA-Z\ \:\-\+\.\,]+)/) { console( COLOR => 'red', MESSAGE => 'Ошибка Hourse sdb' ); } my $smart_h_sdb = $1; unless(`smartctl -a /dev/sda | grep Temperature_Celsius` =~ m/- ([0-9a-zA-Z\ \:\-\+\.\,]+)/) { console( COLOR => 'red', MESSAGE => 'Ошибка Temp sda' );} my $smart_t_sda = $1; |
|
Отправлено: 12:29, 10-02-2020 |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать Armsinglom,
тема выплевывание в csv приведенным фрагментом не раскрыта |
Отправлено: 07:04, 11-02-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Как то так:
use strict; use utf8; use Term::ANSIColor; use Time::Piece; binmode STDOUT, ":utf8"; binmode STDERR, ":utf8"; our $inventory_host = '127.0.0.1'; our $inventory_port = 8080; print "\n"; sub console { my %args = ( COLOR => 'white' , MOMENT => localtime->strftime('%Y/%m/%d %H:%M:%S') , MESSAGE => 'Нет сообщения' , @_ ); print STDERR color($args{COLOR}) , $args{MOMENT} . ' ' , color('bold') , $args{MESSAGE} , color('reset') , "\n"; } sub request { my %args = ( DBASE => '', REQUEST => '', @_ ); if( $args{DBASE} eq '' ) { die "Пустое имя БД"; } if( $args{REQUEST} eq '' ) { die "Пустой запрос"; } my %dictionary = (); my @linez = `psql -c "copy ($args{REQUEST}) to stdout with (format csv,header false);" $args{DBASE} postgres`; foreach my $line(@linez) { chomp $line; unless($line =~ m/^([^,]+),(.*)$/) { next; } $dictionary{$1} = [ split ',', $2 ]; } return %dictionary; } unless(`smartctl -a /dev/sdb | grep Power_On_Hours` =~ m/- ([0-9a-zA-Z\ \:\-\+\.\,]+)/) { console( COLOR => 'red', MESSAGE => 'Ошибка Hourse sdb' ); } my $smart_h_sdb = $1; unless(`smartctl -a /dev/sda | grep Temperature_Celsius` =~ m/- ([0-9a-zA-Z\ \:\-\+\.\,]+)/) { console( COLOR => 'red', MESSAGE => 'Ошибка Temp sda' );} my $smart_t_sda = $1; console( MESSAGE => "SMART T SDb: $smart_t_sda" ); console( MESSAGE => "SMART H SDb: $smart_h_sdb" ); if($inventory_host ne '') { `echo '"$smart_t_sda","$smart_h_sdb"' | nc -w 16 $inventory_host $inventory_port`; } |
Отправлено: 09:49, 11-02-2020 | #3 |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать Armsinglom, для того чтобы не передавалось куда не надо
и
надо их обнулять перед соответвтсущим тестом
типа our $smart_t_sda = 'NO INFO'; unless(`smartctl -a /dev/sda | grep Temperature_Celsius` =~ m/- ([0-9a-zA-Z\ \:\-\+\.\,]+)/) { console( COLOR => 'red', MESSAGE => 'Ошибка Temp sda' ); } # MATCH HAPPENED -> $1 DEFINED $smart_t_sda = $1; |
Отправлено: 04:29, 12-02-2020 | #4 |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Попробовал, всё равно подставляется предыдущее значение.
|
|
Отправлено: 14:51, 12-02-2020 | #5 |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать Armsinglom, не могу поверить я так вам посоветовал
вот хорошая our $cnt = 0; while ($cnt != 10 ) { $res = 0; $str = "counter: ${cnt}"; unless($str =~ m/counter: ([246])/) { print "this is \"error\" - skip capture\n"; $res = 0; } else { $res = $1; } $cnt++; # print $cnt; print "cnt=${cnt}\tres= ${res}\n"; } ~ this is "error" - skip capture cnt=1 res= 0 this is "error" - skip capture cnt=2 res= 0 cnt=3 res= 2 this is "error" - skip capture cnt=4 res= 0 cnt=5 res= 4 this is "error" - skip capture cnt=6 res= 0 cnt=7 res= 6 this is "error" - skip capture cnt=8 res= 0 this is "error" - skip capture cnt=9 res= 0 this is "error" - skip capture cnt=10 res= 0 |
Отправлено: 01:16, 13-02-2020 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Проблема с регуляркой (Perl) | Armsinglom | Скриптовые языки администрирования Windows | 9 | 30-01-2020 09:42 | |
Помогите с обработкой видео | PoedemVSanFrancisko! | Видео и аудио: обработка и кодирование | 4 | 27-01-2014 08:32 | |
проблема с обработкой Winnt.SIF во время установки WinXP c флешки | MANtiCORE | Автоматическая установка Windows 2000/XP/2003 | 6 | 14-09-2009 20:54 | |
Проблемы с обработкой видео | Ник-22 | Видео и аудио: обработка и кодирование | 6 | 06-07-2008 18:40 | |
Проблема с обработкой груповых политик | kapitanvagin | Microsoft Windows NT/2000/2003 | 4 | 05-12-2007 08:21 |
|