Jump to content
BulForum.com

Предложение за FreeSpace Monitor...


ov3rm4n

Recommended Posts

На няколко места из нета съм виждал да се процедира така - в корена на FTP сървъра на всеки половин час се създава файл в името на който се казва колко е свободното място на сървъра към момента. Мисля си, че е доста полезно за хората които ъплоадват - така ще са наясно дали за ъплоада им ще има място или просто както си ъплоадват ще зависне поради липса на такова. Освен това по същия начин може да се следи колко пълен е сървъра и ако примерно е над 90% да се извежда съобщение до юзърите, че започва преместване на файловете от FTP по другите директории. Така поне малко ще намалеят постовете от сорта "Къде изчезна еди-какво-си" и "Защо изтрихте еди-какво-си - не можах да си го сваля!"... Естествено няма да престанат съвсем, но ще намалеят, ако има къде хората да видят за какво става дума...

И понеже лично мен "даването на акъл" просто ей така, по принцип, ме докарва до бяс, набързо съм спретнал тука подобен скрипт. На Perl е и може да се ползва за целта - изпробвал съм го. Само трябва да се променят пътищата, за да отговарят на тукашната система. Нямам претенции, че е написан кадърно и по-добре не може - напротив - със сигурност може и по-добре да се направи. Както казах - набързо съм го нахвърлял, за да не съм просто поредния "luser" дето мрънка "дайте това, дайте онова" без да предлага конкретно решение.

Ако има въпроси или предложения за подобрения по скрипта - давайте. Макар че съм се старал да коментирам кое как и защо - все нещо съм пропуснал. А може и на някой да му свърши работа - ще бъда много доволен, ако ми пуснете мейл с линк към сървър на който сте го приложили...

 

;) :D ;)

 

#!/usr/bin/perl

 

use strict;

 

my $ln;

my $f = "Free.Space.Left.On.System-"; # Message to show.

# Directory where the message will be placed - CHANGE VALUE BELOW!

my $md = "/home/ftproot/upload";

 

# Take df output as input ;)

open DF,"df / --sync -h |";

while (<DF>) {

# We need only that line with the numbers in it ;)

$ln = $_ if /\d+\w/;

}

close DF;

 

# Get the values - note: $1 is Total space $2 is Used space $3 is Free space.

# and $4 is percent of used space...

$ln =~ /\s+(\d+\.?\d+\w)\s+(\d+\.?\d+\w)\s+(\d+\.?\d+\w)\s+(\d+%)/;

# Just to be sure there will be no mess!

chdir "$md";

# Erase file whit old message!

unlink (glob("$f*"));

 

$f.=$3; # Create message...

# But, if the used space is more than 90%, tell the world whats going on!

$f= "File.Move.In.Progress.Be.Patient!" if $4 > 89; 

 

# Finaly create file with new message...

open F,">$f";

print F "FreeSpace monitor by ov3rm4n - snapshot taken at ",scalar localtime;

close F;

Link to comment
Share on other sites

Ideiata ti ne e losha. Na men niakolko pati mi se e sluchvalo da nemoga da uploadna neshto paradi lipsa na miasto. Kato vzemem predvid, che az uploadvam sravnitelno riadko, to predpolagam, che horata, koito uploadvat po-chesto i po poveche se sbluskvat redovno s tozi problem. :)

Mislia che v nikakav sluchai niama da e izlishno takova neshto. ;)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...