26 март 2008

perl скриптче, което проверява статус на хостове и уведомява :)

Тук си запазвам едно скриптче, което проверява за статус на хост и при промяна праща sms, jabber или mail, с две думи ако хоста е DOWN и стане UP - ни праща - урааа - хоста се вдигна, ако в UP и падне - казва - оо нее хоста падна.
Ползва и един мой пакет за най-най-елементарното и грозно пращане на мейл. :) В cpan.org има много, много повече и много, много по-добри - този да не се ползва. Ползвайте например този - EasyMail.


#!/usr/bin/perl
use strict;
use SMTPSend;

my $status_dir = '/var/log/host_check/';

# hosts to be checked for up/down status
my @hosts = (
"192.168.3.9",
"pc-to-w-rabotata.org",
);

# mail server parameters
my %params = (
host => 'localhost',
to => '35988888888@sms.mtel.net',
subj => 'hosts',
from => 'me@home',
);

my $date = `date "+%Y.%m.%d %H:%M:%S"`; chomp($date);

HOST_CHECK: foreach (@hosts) {
my $ping = `ping $_ -c 3`;

unless ($ping =~ / 0 received/) {
print "$date : $_ is UP\n";
next HOST_CHECK if -e "$status_dir${_}_UP";
unlink("$status_dir${_}_DOWN") if -e "$status_dir${_}_DOWN";
$params{body} = "$_ is UP! YEY!";
send_mail(\%params);
print "$date --- $params{to} was notified\n";
`touch $status_dir${_}_UP`;
}
else {
print "$date : $_ is DOWN\n";
next HOST_CHECK if -e "$status_dir${_}_DOWN";
unlink("$status_dir${_}_UP") if -e "$status_dir${_}_UP";
$params{body} = "$_ is DOWN";
send_mail(\%params);
print "$date ---$params{to} was notified\n";
`touch $status_dir${_}_DOWN`;
}
}


а ето и пакета SMTPSend.pm който трябва да се сложи в /usr/lib/perl5/5.8.8/ или /usr/lib/perl5/current/


package SMTPSend;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(send_mail);
use Expect;

$Expect::Log_Stdout = 0;
sub send_mail {
$| = 1;
my $hash = shift;
my $host = $hash->{'host'}?$hash->{'host'}:'localhost';
my $port = $hash->{'port'}?$hash->{'port'}:'25';
my $from = $hash->{'from'}?$hash->{'from'}:'mailer@localhost';
my $to = $hash->{'to'} or die "You need to supply a receiver\n";
my $subj = $hash->{'subj'}?$hash->{'subj'}:'no subject';
my $body = $hash->{'body'}?$hash->{'body'}:'empty...';
my $command = "telnet $host $port";
my $exp = Expect->spawn($command) or die "ERROR $!\n";
$exp->send("HELO host\n");
$exp->send("MAIL FROM: $from\n");
$exp->send("RCPT TO: $to\n");
$exp->send("DATA\n");
$exp->send("Subject: $subj\n\n");
$exp->send("$body");
$exp->send("\n.\n");
$exp->send("QUIT\n");
$exp->soft_close() or die "$!";
return 665; # the neighbour of the beast :)
}
return 666;


А ако искаме да получаваме PM на jabber-а, добавяме следната процедурка:

sub jabber_alert() {
my $who = shift;
my $message = shift;
use Log::Dispatch;
use Log::Dispatch::Jabber;
my $dispatcher = Log::Dispatch->new();
my $jabber = Log::Dispatch::Jabber->new(
name => "jabber",
min_level => "debug",
login => {
hostname => "jabber.whatever",
port => 5222,
username => "user-a-deto-prashta-jabber-msg-tata",
password => "passworda",
resource => "logger",
},
to=>["$who"],
check_presence=>1,
force=>"$who",
buffer => "1",
);
$dispatcher->add($jabber);
$dispatcher->log(
level => "debug",
message => "$message",
);
}

ползва се така:

jabber_alert('me@jabber.cz', "Stana edi kakwo si!!" );

19 март 2008

Пълни епизоди на South Park - официално.. с малко реклами..

Можете да гледате всички пълни епизоди на South Park на southparkstudios.com/episodes/ в някакв сравнително не-куц флаш плейър, има си full screen и качеството е доста добро. Има малко рекламки ама няма начин - една в началото и 3 по време на епизода - хитро отбелязани с бяла чертичка. Не че нямам всичките епизоди двд-рип на харда, достъпни отвсякъде и т.н. и винаги бих предпочел тях да си гледам - ама добра постъпка. :) Ако всички си пускаха сериалите така - нямаше да откажа. :)

16 март 2008

Вафла Франка! Най-после!

Ето, че и аз открих вафла Франка и я опитах. Цената и е 30ст, има няколко разновидности - вчера имаше само с какао и с фъстъци. Фавлата е хубава, но не е нищо особено - на вкус е много подобна на едновремешните "Явор" и "Кокос", които бяха по 15ст. :)

06 март 2008

Ключ за свещи за VT500C

При моя мотор Honda VT500C проблема с ключа за свещи е голям. От тези по бензиностанции и магазини не става никой - най-добрия шанс е с глух ключ за свещи 18, обаче става само за две от тях, за другите трябва да е с чупещо се рамо и да е много тънък в основата. Ключ за свещи от repair kit-a на XL Varadero 1000 става перфектно, такъв струва 27лв в Бултрако. За мотори преди 92 нямат информация и официални чарколяци, та затова от друг мотор. Не са малко парите, но си заслужава. ;)

05 март 2008

note...

Сменени:
- масло (Motul 20x50) + филтър на 74000км,
- свещи (NGK DPR8EA-9) на 74600км.

Да си сменям винаги свещите на 5000км, и никога повече.
Днес направих така - бяха на 5600 станали свещите и мотора ме остави да си ходя пеша - мъкааааа. Щом смених свещите запали от раз. Следващия път си взимам свещи още на 4000км и си ги нося в мен. :)

02 март 2008

Начало на втори сезон. :)

Ето, че открихме моторния сезон. Вчера успях почти сам да:
- сглобя полуразглобения мотор;
- монтирам китосания, боядисания и лакирания от мен резервоар и калник;
- сменя маслото, масления филтър;
- изчистя и поизлъскам машинката.

Днес пък по щастливо стечение на обстоятелствата успях да се сдобия и с топ каса и да я монтирам успешно. Пасна много добре. Сега мисля как да и добавя едни железца, че да може върху нея да се вози палатка & шалтета.
Има и шанс да докопам от ebay оригиналните куфари за стойката ми - krauser k1. Дано. :)