The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"troubles with perl module"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"troubles with perl module" 
Сообщение от anonymous Искать по авторуВ закладки(??) on 01-Дек-05, 17:03  (MSK)
Hi ALL.
такая проблема : написал скриптик который должен следить за свободным местом на партишенах и
если что , отсылать mail.

#!/usr/bin/perl
use POSIX "uname";
use strict;
use Filesys::DiskFree;
use Mail::Sendmail;

my ($sysname, $nodename, $release, $version, $machine ) = uname;
my $quota = 90;
my $hdd = "hd"; #may be sd (scsi) or hd (ide)
my $From = "$nodename\@xxx.com";

my $handle = new Filesys::DiskFree;
$handle->df();
open (FILE,"/etc/mtab") or die "error $!\n";
my @mas =<FILE>;
close (FILE);
my %hash_a = ();
foreach my $str (@mas) {
        my @list = split (/ /,$str);
        next if $list[0] !~ /^\/dev\/$hdd*/ ;
                $hash_a {$list[1]}=$list[0];
}
foreach my $str (keys(%hash_a)) {
        my $res = (($handle->used($str)/$handle->total($str))*100) ;
        next if $res < $quota ;
        mail($str,$res,$hash_a{$str});
}
sub mail {
        my ($str,$res,$dev) =@_;
        my %mail = (    smtp    => 'mail.xxx.com',
                        Subject => 'DISK SPACE ALARM',
                        To      => 'root@xxx.com',
                        From    => "$From",
                        Message => "ALARM !!! $dev $str $res% used on $nodename $sysname"
                   );
        sendmail(%mail) or die $Mail::Sendmail::error;
}


под linux работает наура , теперь мне понадобилось перенести этот скрипт на FreeBSD , установил необходимые перл модули , но p5-Filesys-DiskFree-0.06 отказываются работать

в версии под FreeBSD разумеется надо изменить названия партишенов с /dev/hd на /dev/adxxx
и переделать часть с /etc/mtab
но до этого дело не доходит ,  вот в чем трабла:
запускаю и вот что говорит модуль
./diskalarm.pl
No df command known for format freebsd at ./diskalarm.pl line 14

ему не нравится , что переменая $^O содержит freebsd
если модуль передлать так , чтоб вместь $^O подставлялась bsdos которая определена в модуле
то неработают части модуля .

спрашивается для чего в портах есть этот модуль если он не поддерживает FreeBSD ?
или я плохо читал его описанине ?

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "troubles with perl module" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 05-Дек-05, 13:47  (MSK)
>Hi ALL.
>такая проблема : написал скриптик который должен следить за свободным местом на
>партишенах и
>если что , отсылать mail.

Забудь о подобных костылях для FreeBSD. Всё уже давно продумали за нас:

/home/chip> uname -s
FreeBSD
/home/chip> grep df /etc/defaults/periodic.conf
daily_status_disks_df_flags="-k -t nonfs"               # df(1) flags for check
/home/chip>

Всё что от тебя требуется изменить alias: /etc/mail/aliases:

> grep ^root /etc/mail/aliases
root:   user@domain.tld
>

на свой e-mail и перестроить базу aliases.db командой newaliases.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




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

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