Initial commit
This commit is contained in:
commit
877e01be76
1 changed files with 54 additions and 0 deletions
54
multitail.php
Normal file
54
multitail.php
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
const TAIL_CMD = 'tail -F %s';
|
||||||
|
|
||||||
|
$log_globs = array_slice($argv, 1);
|
||||||
|
|
||||||
|
$files = [];
|
||||||
|
foreach ($log_globs as $glob)
|
||||||
|
{
|
||||||
|
$files += glob($glob);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pipes = [];
|
||||||
|
|
||||||
|
if (count($files) == 0)
|
||||||
|
{
|
||||||
|
fwrite(STDERR, 'No files given!');
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($files as $id => $file)
|
||||||
|
{
|
||||||
|
$newkey = basename($file);
|
||||||
|
if (is_string($id))
|
||||||
|
{
|
||||||
|
$newkey = $id;
|
||||||
|
}
|
||||||
|
|
||||||
|
$pipes[$newkey] = popen(sprintf(TAIL_CMD, escapeshellarg($file)), 'r');
|
||||||
|
stream_set_blocking($pipes[$newkey], 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
$w = null;
|
||||||
|
$e = null;
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
$read = $pipes;
|
||||||
|
$modified = stream_select($read, $w, $e, null);
|
||||||
|
|
||||||
|
if ($modified > 0)
|
||||||
|
{
|
||||||
|
foreach ($read as $file => $pipe)
|
||||||
|
{
|
||||||
|
$file = explode('.', $file)[0];
|
||||||
|
while ($line = fgets($pipe))
|
||||||
|
{
|
||||||
|
echo $file, ': ', $line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
Loading…
Reference in a new issue