lilalo

diff l3-frontend @ 48:568bab7090fc

l3-cgi:
Журналы могут быть сохранены в файл,

l3:
Отправка файлов журналов по электронной почте.
l3 do send-logs


Новые параметры:
cgi2file - имя файла, в который будет выполняться запись
cgi_path_info - путь к странице, которая должна быть записана в файл
(то что вводится в браузер после l3/location)
author devi
date Sat Nov 26 16:15:52 2005 +0200 (2005-11-26)
parents 466bea239d25
children d021553f4e98
line diff
     1.1 --- a/l3-frontend	Tue Nov 22 20:46:46 2005 +0200
     1.2 +++ b/l3-frontend	Sat Nov 26 16:15:52 2005 +0200
     1.3 @@ -396,12 +396,12 @@
     1.4  	my $last_day="";
     1.5  	my $in_range=0;
     1.6  
     1.7 -	my $i=0;
     1.8 +	my $current_command=0;
     1.9  
    1.10  COMMAND_LINE:
    1.11  	for my $k (@Command_Lines_Index) {
    1.12  
    1.13 -		my $cl=$Command_Lines[$Command_Lines_Index[$i++]];
    1.14 +		my $cl=$Command_Lines[$Command_Lines_Index[$current_command++]];
    1.15  		
    1.16  		next unless $cl;
    1.17  
    1.18 @@ -411,11 +411,14 @@
    1.19  			my %filter;
    1.20  			for (split /&/,$Config{filter}) {
    1.21  				my ($var, $val) = split /=/;
    1.22 -				$filter{$var} = $val;
    1.23 +				$filter{$var} = $val || "";
    1.24  			}
    1.25  
    1.26  			for my $filter_key (keys %filter) {
    1.27 -				next COMMAND_LINE unless $Sessions{$cl->{local_session_id}}->{$filter_key} eq $filter{$filter_key};
    1.28 +				next COMMAND_LINE unless (
    1.29 +					not defined($cl->{local_session_id}) 
    1.30 +					|| not defined($Sessions{$cl->{local_session_id}}->{$filter_key}) 
    1.31 +					|| $Sessions{$cl->{local_session_id}}->{$filter_key} eq $filter{$filter_key});
    1.32  			}
    1.33  
    1.34  			#if ($filter{user}) {
    1.35 @@ -494,7 +497,7 @@
    1.36  				$mark=0;
    1.37  			}	
    1.38  			$output .= $Config{"skip_text"}."\n" if $mark;
    1.39 -			for (my $i=$start; $i<= $#lines; $i++) {
    1.40 +			for ($i=$start; $i<= $#lines; $i++) {
    1.41  				$output .= $lines[$i]."\n";
    1.42  			}
    1.43  		} 
    1.44 @@ -548,7 +551,9 @@
    1.45  		if ( $last_tty ne $cl->{"tty"}) {
    1.46  			my $host;
    1.47  			#$host = $Sessions{$cl->{local_session_id}}->{user}."@".$Sessions{$cl->{local_session_id}}->{hostname};
    1.48 -			$Result{"body"} .= "<td colspan='6'><table><tr><td class='ttychange' width='140' align='center'>".$cl->{"tty"}."</td><td>$host</td></tr></table></td></tr><tr>";
    1.49 +			my $body = $cl->{"tty"};
    1.50 +			$body .= " \@$host" if $host;
    1.51 +			$Result{"body"} .= "<td colspan='6'><table><tr><td class='ttychange' width='140' align='center'>".$body."</td></tr></table></td></tr><tr>";
    1.52  			$last_tty=$cl->{"tty"};
    1.53  		}
    1.54  
    1.55 @@ -656,9 +661,10 @@
    1.56  
    1.57  	my %CommandsFrequency = %CommandsFDistribution;
    1.58  
    1.59 -	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($Stat{FirstCommand});
    1.60 +	$Stat{TotalTime} ||= 0;
    1.61 +	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($Stat{FirstCommand} || 0);
    1.62  	$Stat{FirstCommand} = sprintf "%02i:%02i:%02i %04i-%2i-%2i", $hour, $min, $sec,  $year+1900, $mon+1, $mday;
    1.63 -	($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($Stat{LastCommand});
    1.64 +	($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($Stat{LastCommand} || 0);
    1.65  	$Stat{LastCommand} = sprintf "%02i:%02i:%02i %04i-%2i-%2i", $hour, $min, $sec,  $year+1900, $mon+1, $mday;
    1.66  	$Stat{ErrorsPercentage} = sprintf "%5.2f", $Stat{ErrorCommands}*100/$Stat{TotalCommands}	
    1.67  		if $Stat{TotalCommands};
    1.68 @@ -753,6 +759,10 @@
    1.69  
    1.70  	my $toc = collapse_list (\@toc);
    1.71  	$Result{"header"} .= <<HEADER;
    1.72 +	<table border=0 id='toc' class='toc'>
    1.73 +	<tr>
    1.74 +	<td>
    1.75 +	<div class='toc_title'>Содержание</div>
    1.76  	<ul>
    1.77  		<li><a href='#log'>Журнал</a></li>
    1.78  		<ul>$toc</ul>
    1.79 @@ -760,6 +770,9 @@
    1.80  		<li><a href='#help'>Справка</a></li>
    1.81  		<li><a href='#about'>О программе</a></li>
    1.82  	</ul>
    1.83 +	</td>
    1.84 +	</tr>
    1.85 +	</table>
    1.86  
    1.87  	<h2 id="log">Журнал</h2>
    1.88  HEADER
    1.89 @@ -894,6 +907,22 @@
    1.90  	<br/>
    1.91  	</p></li>
    1.92  	<li><p>
    1.93 +	Для того чтобы изменить файл в соответствии с показанными в диффшоте
    1.94 +	изменениями, можно воспользоваться командой patch.
    1.95 +	Нужно скопировать изменения, запустить программу patch, указав в
    1.96 +	качестве её аргумента файл, к которому применяются изменения,
    1.97 +	и всавить скопированный текст:
    1.98 +<table>
    1.99 +<tr class='command'>
   1.100 +<td class='script'>
   1.101 +<pre class='cline'>
   1.102 +\$ patch ~/.bashrc</pre>
   1.103 +</td>
   1.104 +</tr>
   1.105 +</table>
   1.106 +	В данном случае изменения применяются к файлу ~/.bashrc
   1.107 +	</p></li>
   1.108 +	<li><p>
   1.109  	Для того чтобы получить краткую справочную информацию о команде, 
   1.110  	нужно подвести к ней мышь. Во всплывающей подсказке появится краткое
   1.111  	описание команды.