Using PHP to view syslog in private web page


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Using PHP to view syslog in private web page
# 1  
Old 07-12-2019
Using PHP to view syslog in private web page

I am trying to extract data from syslog and view it on a web page. I'm using a php script.



This line works from command line
Code:
tail -n 11 /var/log/_gateway-syslog.log | grep -a iWiSP-Out | awk '{print $8, $9,$10,$11"   ",$19,"   " $15, $16,$17,"   " $18,$21, $22}'


when I put it into this php script it fails isp.php

Code:
<?php
$output = shell_exec('tail -n 11 /var/log/_gateway-syslog.log | grep -a iWiSP-Out | awk '{print $8, $9,$10,$11"   ",$19,"   " $15, $16,$17,"   " $18,$21, $22}' ');
echo "<pre>$output</pre>";
?>


web page test.html



Code:


<html>
<body>
<iframe width=1450 height=200  allowtransparency="true" style="background: #FFFFFF;"  src="isp.php" style="border: 5px solid black;">
  <p>Your browser does not support iframes.</p>
</iframe>
</body>
</html>


Last edited by Scrutinizer; 07-12-2019 at 04:22 PM.. Reason: quote tags -> code tags
# 2  
Old 07-12-2019
You need to watch your quotes and escaping. In PHP this is all one big double-quoted section, and any double quotes inside it must be escaped so they don't end early.

Code:
<?php
$output = shell_exec("tail -n 11 /var/log/_gateway-syslog.log | grep -a iWiSP-Out | awk '{print $8, $9,$10,$11\"   \",$19,\"   \" $15, $16,$17,\"   \" $18,$21, $22}' ");
echo "<pre>$output</pre>";
?>

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 07-13-2019
Generally in PHP you are better off with a simple shell_exec() command and then process the results in PHP.

For example, from the above code, you could do this:

Code:
<?php
$command = "tail -n 11 /var/log/_gateway-syslog.log");
$raw_output = shell_exec($command);
$output = process_output($raw_output):
echo "<pre>$output</pre>";

function  process_output($text)
{
  // do your text processing here instead of using a shell command pipeline in shell_exec()
 return $processed_text;
}

PHP has rich tools for text processing including regular expressions.

I written these types of PHP files to display unix / linux system information countless times, and I always process the text in PHP without exception.

In general, I find it best to decouple the "shell exec" type of commands from PHP as much as possible for a number of reasons, including system security, integrity and long-term system maintenance.

For a real-world example on this web site, we use shell_exec() to begin processing all the man pages in our man page repository; but the shell_exec() only returns the raw output from the man command. Then the PHP script extensively processes the raw man page output, adding links, formatting, html entities, css information, etc. There is a significant amount of text processing done in PHP, but the PHP shell_exec() command to get the man page from the Linux filesystem and output for processing is very basic / simple.
# 4  
Old 07-13-2019
Corona688, Thank you. That was the quick fix and it worked....


Neo,

Thank you, I like your idea and I have followed the logic in your suggestion. However I am lost when it gets to processed_output. everything I have tried gives me no output.

I even replaced the tail -n with just cat to make sure I would see something. under the function process_output I ran a simple test using a grep for 20.254 . I'm seeing nothing.



Quote:
Originally Posted by Corona688
You need to watch your quotes and escaping. In PHP this is all one big double-quoted section, and any double quotes inside it must be escaped so they don't end early.

Code:
<?php
$output = shell_exec("tail -n 11 /var/log/_gateway-syslog.log | grep -a iWiSP-Out | awk '{print $8, $9,$10,$11\"   \",$19,\"   \" $15, $16,$17,\"   \" $18,$21, $22}' ");
echo "<pre>$output</pre>";
?>

Quote:
Originally Posted by Neo
Generally in PHP you are better off with a simple shell_exec() command and then process the results in PHP.

For example, from the above code, you could do this:

Code:
<?php
$command = "tail -n 11 /var/log/_gateway-syslog.log");
$raw_output = shell_exec($command);
$output = process_output($raw_output):
echo "<pre>$output</pre>";

function  process_output($text)
{
  // do your text processing here instead of using a shell command pipeline in shell_exec()
 return $processed_text;
}

PHP has rich tools for text processing including regular expressions.

I written these types of PHP files to display unix / linux system information countless times, and I always process the text in PHP without exception.

In general, I find it best to decouple the "shell exec" type of commands from PHP as much as possible for a number of reasons, including system security, integrity and long-term system maintenance.

For a real-world example on this web site, we use shell_exec() to begin processing all the man pages in our man page repository; but the shell_exec() only returns the raw output from the man command. Then the PHP script extensively processes the raw man page output, adding links, formatting, html entities, css information, etc. There is a significant amount of text processing done in PHP, but the PHP shell_exec() command to get the man page from the Linux filesystem and output for processing is very basic / simple.
# 5  
Old 07-13-2019
You must write your own text processing function and post YOUR code.

Where is the the code YOU wrote that you are taking about?
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

What is a page from Linux point of view ?

Versions : RHEL 6.xx /OL 6.xx I am trying to understand what a page is in Linux? The concept should be same in Unix as well, I guess The below doc says "A page is a block of virtual memory. A typical block size on Linux operating system is 4KB " ... (4 Replies)
Discussion started by: kraljic
4 Replies

2. Shell Programming and Scripting

Web page with picture, text, php function

Hello. I'm trying to create a web page which the presentation is as follows: 1 °) at the top of page an image 2 °) below the text 3 °) to complete a php function that returns information. I tried different things but none work. Script 1: <!DOCTYPE html> <html> <head> <style> div { ... (5 Replies)
Discussion started by: jcdole
5 Replies

3. AIX

View OS version within HMC web GUI?

Hello there Im wondering is there any way to see lpar OS info (like 5.3 or 6.1) in HMC web GUI? Because in some situation, the lpar is inactive, the only way to check OS version is to activate, this process takes time :) Tks! (8 Replies)
Discussion started by: bsddaemon
8 Replies

4. Programming

Need a help in automating the http authenticated web page - via PHP scripting

Hi all, Need a help in PHP scripting. Am automating a process in web page. The process is 1. i have to open that web page using the user credentials (Username and password). 2. select a drop down and click submit button. 3. Then check for the status of the page. Please help me how to... (1 Reply)
Discussion started by: vidhyaS
1 Replies

5. Web Development

web interface to view,copy,select files

Hi. I have been working on an email backup solution. I need some kind of web admin interface to view , copy & select files in order to restore them. Can someone point me to the right direction? Or do i need to code it from scratch. Something that need a little modification to work is OK. ... (3 Replies)
Discussion started by: coolatt
3 Replies

6. Shell Programming and Scripting

View an html page inside zenity

Hi! :) Inside a bash script, I have an html page: "example.html" I need: - read "example.html. - print and view the result for example with dillo (or another light browser) inside zenity with clickable images and links. Some stuff like: zenity --html-info --filename=example.html Is... (0 Replies)
Discussion started by: aspire
0 Replies

7. UNIX for Dummies Questions & Answers

view page command?

Hi All, When I run a command on any shell, many times the output is longer than the screen can hold, so I only can see parts of the output. Is there a command that will show me page by page the results of each command? Thanks, Jared (3 Replies)
Discussion started by: JaredsNew
3 Replies

8. UNIX for Dummies Questions & Answers

Web page hosting

I built my website based on Dreamweaver, on Windows platform. My server uses Unix, and the page doesn't look too good. Is there any way to solve this problem without too much of a headache? (1 Reply)
Discussion started by: PCL
1 Replies
Login or Register to Ask a Question