- same fixes (history, color, ...)

- add same news (resize, limits, speed, ...)
This commit is contained in:
jmann 2012-08-17 13:23:40 +02:00 committed by Thomas Schoebel-Theuer
parent 2ced26ef59
commit 2b20ff1b67

View File

@ -1,11 +1,10 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
# (c) 2012 Joerg Mann / 1&1 Internet AG # (c) 2012 Joerg Mann / 1&1 Internet AG
# #
# $Id: 8174222857e611445de87bba92b52677b387c939 $ # $Id: 5a8a13c09fa23ae74858e48fc010e7f61f90dc02 $
# last update at Tue Apr 10 17:20:32 CEST 2012 by joerg.mann@1und1.de # last update at now ...
# TODO: # TODO:
# check deutsch/englich
# add todo-global delete-logfiles # add todo-global delete-logfiles
# anzeige bandbreite / i/o-load wenn dieser genutzt wird # anzeige bandbreite / i/o-load wenn dieser genutzt wird
# bugix fuer nachtaegliches join (log-v-4 ...) # bugix fuer nachtaegliches join (log-v-4 ...)
@ -21,7 +20,7 @@ use POSIX qw(strftime);
use File::Basename; use File::Basename;
### defaults ### defaults
my $version = "0.068a"; my $version = "0.068e";
my $alife_timeout = "99"; # sec my $alife_timeout = "99"; # sec
my $is_tty = 0; my $is_tty = 0;
my $mars_dir = '/mars'; my $mars_dir = '/mars';
@ -88,7 +87,7 @@ sub check_link {
sub print_screen { sub print_screen {
my $text = shift; my $text = shift;
my $color = shift; my $color = shift;
if (!$color) {$color = 'black';} if (!$color) {$color = 'FAINT';}
if ( $params->{'monitor'} ) { if ( $params->{'monitor'} ) {
chomp $text; chomp $text;
@ -181,6 +180,13 @@ sub display_partner {
print_screen "\tDevice : ".check_link "$mars_dir/$PRes/data-$PName"; print_screen "\tDevice : ".check_link "$mars_dir/$PRes/data-$PName";
print_screen ", used as $PDevice"; print_screen ", used as $PDevice";
my $ASize = check_link "$mars_dir/$PRes/actsize-$PName";
if ( $PSize eq $ASize) {
print_screen ", not resized";
} else {
print_screen "\n\t\t---> HINT: resizing used ($PSize != $ASize)",'red';
}
# check mountpint # check mountpint
if ( $himself eq $PName ) { if ( $himself eq $PName ) {
my $PUDevice = "/dev/mars/$PDevice"; my $PUDevice = "/dev/mars/$PDevice";
@ -203,6 +209,23 @@ sub display_partner {
$$ref_ResPartner++; $$ref_ResPartner++;
### sync
my $PSyncsize = check_link "$mars_dir/$PRes/syncstatus-$PName";
my $SStatus = sprintf("%.2f", ($PSyncsize / $PSize * 100));
if ( $params->{'long'} ) {
print_screen (sprintf "\tSync : %s bytes (%.3fTB) synced = ", $PSyncsize, ( $PSyncsize/1024/1024/1024/1024));
if ( $SStatus < 100) {
print_screen "$SStatus%\n";
print_screen "\t\t---> WORK: Sync in progress = ($SStatus% < 100.00%)\n", 'red';
} else {
print_screen "$SStatus%\n", 'green';
}
}
$$ref_ResInSync = $SStatus;
### work by resize ...
#print "\n$PSize\n$PSyncsize\n$PName";
### logfile ### logfile
my @PLogFile = split (',', check_link "$mars_dir/$PRes/replay-$PName" ); my @PLogFile = split (',', check_link "$mars_dir/$PRes/replay-$PName" );
my @PLogLink = split ("-", $PLogFile[0]); my @PLogLink = split ("-", $PLogFile[0]);
@ -244,22 +267,17 @@ sub display_partner {
} else { } else {
print_screen "$RStatus%\n", 'green'; print_screen "$RStatus%\n", 'green';
} }
### start work speed
#if $params->{'interval'} ...
#if nicht lokale ressource ...
### end work speed
} }
$$ref_ResInReplay = $RStatus; $$ref_ResInReplay = $RStatus;
### sync
my $PSyncsize = check_link "$mars_dir/$PRes/syncstatus-$PName";
my $SStatus = sprintf("%.2f", ($PSyncsize / $PSize * 100));
if ( $params->{'long'} ) {
print_screen (sprintf "\tSync : %s bytes (%.3fTB) synced = ", $PSyncsize, ( $PSyncsize/1024/1024/1024/1024));
if ( $SStatus < 100) {
print_screen "$SStatus%\n";
print_screen "\t\t---> WORK: Sync in progress = ($SStatus% < 100.00%)\n", 'red';
} else {
print_screen "$SStatus%\n", 'green';
}
}
$$ref_ResInSync = $SStatus;
if ( $params->{'long'} ) { if ( $params->{'long'} ) {
@ -403,25 +421,6 @@ sub check_logfile {
} }
#########################################################################################
### avg_limit
sub check_avg_limit {
if ( open (MARS_LOADAVG, "< /proc/sys/mars/loadavg_limit") ) {
my $mars_avg_limit;
while (<MARS_LOADAVG>) {
$mars_avg_limit = $_;
}
close MARS_LOADAVG;
print_screen "-> Node AVG-Speed-Limit is ", 'bold';
if (( !$mars_avg_limit ) || ( $mars_avg_limit < "1" )) {
print_screen "unset, used full speed\n", 'green';
} else {
print_screen "is $mars_avg_limit", 'red';
}
}
}
######################################################################################### #########################################################################################
### diskfull ### diskfull
sub check_disk_is_full { sub check_disk_is_full {
@ -584,7 +583,7 @@ sub check_ressource {
} }
if ($ResInSync ne "100.00") { if ($ResInSync ne "100.00") {
$ResInSyncSum = $ResInSyncSum + $ResInSync; $ResInSyncSum = $ResInSyncSum + $ResInSync;
$ResInSyncPar = $ResInSyncPar + 1; $ResInSyncPar = $ResInSyncPar + 1;
} }
# end him self # end him self
@ -662,6 +661,41 @@ sub check_ressource {
} }
#########################################################################################
### avg_limit
sub check_jammed {
my $jammed = check_link "$mars_dir/jammed-$himself";
print_screen "-> Mars-Transaktion ", 'bold';
if (( !$jammed ) || ( $jammed ne 0 )) {
print_screen "running normaly\n", 'green';
} else {
print_screen "and Replication not runnunig !!!\n", 'red';
}
}
#########################################################################################
### limit's auslesen ...
sub check_limit {
my $LimitL = shift;
my $LimitT = shift;
my $LimitE = shift;
my $mars_limit;
if ( open (MARS_LIMIT, "< /proc/sys/mars/$LimitL") ) {
while (<MARS_LIMIT>) {
$mars_limit = $_;
$mars_limit =~ s/[\n\t]//g;
}
close MARS_LIMIT;
}
print_screen "-> $LimitT: ", 'bold';
if (( !$mars_limit ) || ( $mars_limit < "1" )) {
print_screen "unset, used full speed\n", '';
} else {
print_screen "is $mars_limit $LimitE\n", 'red';
}
}
######################################################################################### #########################################################################################
### main loop ... ### main loop ...
while(1) { while(1) {
@ -682,14 +716,23 @@ while(1) {
$params->{'long'} = 1; $params->{'long'} = 1;
$params->{'history'} = 1; $params->{'history'} = 1;
} }
### read mars infos ### read mars infos
if ( $params->{'long'} ) { if ( $params->{'long'} ) {
# read mars info # read mars info
info_version; info_version;
# system check # check system limits
check_avg_limit; check_limit "loadavg_limit", "AVG-Limit", "";
check_limit "network_traffic_limit_kb", "Network-Traffic-Limit", "kb/s";
check_limit "percent_mem_limit_kb", "Memory-Limit", "kb/s";
check_limit "server_io_limit_mb", "Server-IO-Limit", "mb/s";
check_limit "free_space_mb", "Free-Space-Limit on /mars", "mb";
check_limit "logdel_auto_gb", "Free-Space-Limit for Auto-Log-Delete", 'gb';
check_limit "logrot_auto_gb", "Free-Space-Limit for Auto-Log-Rotate", 'gb';
# check system params
check_jammed;
check_disk_is_full; check_disk_is_full;
} }
@ -724,6 +767,7 @@ while(1) {
print color 'reset'; print color 'reset';
exit if (not $params->{'interval'}); exit if (not $params->{'interval'});
sleep($params->{'interval'}); sleep($params->{'interval'});
} }
exit; exit;