#!/usr/bin/perl use warnings "all"; use strict; use POSIX qw(strftime); # берём курс валют с сайта ЦБ РФ my $data = `curl -s http://www.cbr.ru/scripts/RssCurrency.asp | iconv -f cp1251 -t utf8`; $data = (split(/\[CDATA\[ /, $data))[1]; $data = (split(/\]\]/, $data))[0]; my @data = split(/
/, $data); $data = undef; my ($usd, $eu, $gbp, $swf, $jy, $chy); foreach (@data){ if ($_ =~ /^Швейцарский франк/) { $swf = (split(/ \- /, $_))[1]; $swf =~ s/\,/\./; } if ($_ =~ /^Фунт стерлингов Соединенного королевства/) { $gbp = (split(/ \- /, $_))[1]; $gbp =~ s/\,/\./; } if ($_ =~ /^Доллар США/) { $usd = (split(/ \- /, $_))[1]; $usd =~ s/\,/\./; } if ($_ =~ /^Евро/) { $eu = (split(/ \- /, $_))[1]; $eu =~ s/\,/\./; } if ($_ =~ /^Японская иена/){ $jy = (split(/ \- /, $_))[1]; $jy =~ s/\,/\./; $jy =~ s/
//;} if ($_ =~ /^Китайский юань/) { $chy = (split(/ \- /, $_))[1]; $chy =~ s/\,/\./; } } # Берём цену бочки нефти с портала mfd.ru my $date = strftime "%d.%m.%Y", localtime; my $oil = `curl -s -q 'http://mfd.ru/export/handler.ashx/_Brent_Crude_Oil_15min_09122015_09122015.txt?TickerGroup=2&Tickers=1*&Alias=false&Period=4&timeframeValue=1&timeframeDatePart=day&StartDate=$date&EndDate=$date&SaveFormat=0&SaveMode=0&FileName=_Brent_Crude_Oil_15min_09122015_09122015.txt&FieldSeparator=%253b&DecimalSeparator=.&DateFormat=yyyyMMdd&TimeFormat=HHmmss&DateFormatCustom=&TimeFormatCustom=&AddHeader=true&RecordFormat=2&Fill=true'`; my @a = split(/\n/, $oil); $oil = $a[@a - 1]; $oil = (split(/;/, $oil))[4]; # берём цену бакса и еврика у альфабанка $data = `curl -q -s https://alfabank.ru/_/rss/_currency.html|iconv -f cp1251 -t utf8`; my ($alfadollarbuy, $alfadollarsell, $alfaeurobuy, $alfaeurosell); if ($data =~ /(\d+\,?\d*)<\/td>/){ $alfadollarbuy = $1; $alfadollarbuy =~ s/,/\./; } if ($data =~ /(\d+\,?\d*)<\/td>/){ $alfadollarsell = $1; $alfadollarsell =~ s/,/\./; } if ($data =~ /(\d+\,?\d*)<\/td>/){ $alfaeurobuy = $1; $alfaeurobuy =~ s/,/\./; } if ($data =~ /(\d+\,?\d*)<\/td>/){ $alfaeurosell = $1; $alfaeurosell =~ s/,/\./; } # берём цену бакса и еврика у банка москвы $data = `curl -s -q http://www.bm.ru/ru/personal/services/exchange/`; my($bmdollarbuy, $bmdollarsell, $bmeurobuy, $bmeurosell); if($data =~ /Доллар США\s+<\/td>\s+\s+(\d\d\,\d\d)\s+<\/td>\s+\s+(\d\d\,\d\d)\s+<\/td>/){ $bmdollarsell = $2; $bmdollarbuy = $1; $bmdollarsell =~ s/,/\./; $bmdollarbuy =~ s/,/\./; } if($data =~ /ЕВРО\s+<\/td>\s+\s+(\d\d\,\d\d)\s+<\/td>\s+\s+(\d\d\,\d\d)\s+<\/td>/){ $bmeurosell = $2; $bmeurobuy = $1; $bmeurosell =~ s/,/\./; $bmeurobuy =~ s/,/\./; } # берём цену бакса и еврика у райффазена $data = `curl -s -q http://www.raiffeisen.ru/currency_rates/`; my ($raifdollarbuy, $raifdollarsell, $raifeurobuy, $raifeurosell); if($data =~ /"USD":{"UNITS":1,"RUR_BUY":"(\d+\.\d+)","RUR_SALE":"(\d+\.\d+)","USD_BUY":.+,"USD_SALE":1}/){ $raifdollarbuy = $1; $raifdollarsell = $2; } if($data =~ /"EUR":{"UNITS":1,"RUR_BUY":"(\d+\.\d+)","RUR_SALE":"(\d+\.\d+)","USD_BUY":.+,"USD_SALE":.+}/){ $raifeurobuy = $1; $raifeurosell = $2; } # берём цену бакса и еврика у сбера $data = `curl -s -q http://data.sberbank.ru/moscow/ru/quotes/currencies/?base=beta|iconv -f cp1251 -t utf8`; my $sberdollarbuy = (split(/\s+\s*/, $data))[1]))[0]; $sberdollarbu =~ s/,/\./; my $sberdollarsell = (split(/\s+\s*/, $data))[2]))[0]; $sberdollarsel =~ s/,/\./; my $sbereurobuy = (split(/\s+/, (split (/\s*/, $data))[3]))[0]; $sbereurobuy =~ s/,/\./; my $sbereurosell = (split(/\s+/, (split (/\s*/, $data))[4]))[0]; $sbereurosel =~ s/,/\./; # берём цену бакса и еврика у втб24 $data = `curl -s -q 'http://www.vtb24.ru/_vti_bin/Vtb24.Internet/CurrencyRateWebService.svc/GetCurrencyRatesJson?filter=8'`; my ($vtbdollarbuy, $vtbdollarsell, $vtbeurobuy, $vtbeurosell); if($data =~ /Buy.:.(\d+\,\d+).+USD.+Sell.:.(\d+\,\d+).+Title.:.Доллар США./){ $vtbdollarbuy = $1; $vtbdollarsell = $2; $vtbdollarbuy =~ s/,/\./; $vtbdollarsell =~ s/,/\./; } if($data =~ /Buy.:.(\d+\,\d+).+EUR.+"Sell":"(\d*\,\d+)"\,.+"Title":"Евро"/){ $vtbeurobuy = $1; $vtbeurosell = $2; $vtbeurobuy =~ s/,/\./; $vtbeurosell =~ s/,/\./; } open (DATA, ">/var/cache/munin/currency.txt"); print DATA <