1+ <?php
2+
3+ /*
4+ Copyright (c) 2007, Till Brehm, projektfarm Gmbh
5+ All rights reserved.
6+
7+ Redistribution and use in source and binary forms, with or without modification,
8+ are permitted provided that the following conditions are met:
9+
10+ * Redistributions of source code must retain the above copyright notice,
11+ this list of conditions and the following disclaimer.
12+ * Redistributions in binary form must reproduce the above copyright notice,
13+ this list of conditions and the following disclaimer in the documentation
14+ and/or other materials provided with the distribution.
15+ * Neither the name of ISPConfig nor the names of its contributors
16+ may be used to endorse or promote products derived from this software without
17+ specific prior written permission.
18+
19+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+ IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+ */
30+
31+ require_once ('../../lib/config.inc.php ' );
32+ require_once ('../../lib/app.inc.php ' );
33+
34+ // Checke Berechtigungen für Modul
35+ if (!stristr ($ _SESSION ["s " ]["user " ]["modules " ],'monitor ' )) {
36+ header ("Location: ../index.php " );
37+ exit ;
38+ }
39+
40+ // Loading the template
41+ $ app ->uses ('tpl ' );
42+ $ app ->tpl ->newTemplate ("form.tpl.htm " );
43+ $ app ->tpl ->setInclude ('content_tpl ' ,'templates/logview.htm ' );
44+
45+ // Importing the GET values
46+ $ refresh = intval ($ _GET ["refresh " ]);
47+ $ logfile_id = $ _GET ["log " ];
48+
49+ // Creating the array with the refresh intervals
50+ $ refresh_values = array ('0 ' => '- No Refresh - ' ,'2 ' => '2 ' ,'5 ' => '5 ' ,'10 ' => '10 ' ,'15 ' => '15 ' ,'30 ' => '30 ' ,'60 ' => '60 ' );
51+ $ tmp = '' ;
52+ foreach ($ refresh_values as $ key => $ val ) {
53+ if ($ key == $ refresh ) {
54+ $ tmp .= "<option value=' $ key' SELECTED> $ val</option> " ;
55+ } else {
56+ $ tmp .= "<option value=' $ key'> $ val</option> " ;
57+ }
58+ }
59+ $ app ->tpl ->setVar ("refresh " ,$ tmp );
60+
61+ // Selecting the logfile
62+ switch ($ logfile_id ) {
63+ case 'mail_log ' :
64+ $ logfile = '/var/log/mail.log ' ;
65+ break ;
66+ case 'mail_warn ' :
67+ $ logfile = '/var/log/mail.warn ' ;
68+ break ;
69+ case 'mail_err ' :
70+ $ logfile = '/var/log/mail.err ' ;
71+ break ;
72+ case 'messages ' :
73+ $ logfile = '/var/log/messages ' ;
74+ break ;
75+ case 'freshclam ' :
76+ $ logfile = '/var/log/clamav/freshclam.log ' ;
77+ break ;
78+ case 'clamav ' :
79+ $ logfile = '/var/log/clamav/clamav.log ' ;
80+ break ;
81+ default :
82+ $ logfile = '' ;
83+ break ;
84+ }
85+
86+ // Getting the logfile content
87+ if ($ logfile != '' ) {
88+ $ logfile = escapeshellcmd ($ logfile );
89+ if (stristr ($ logfile ,'; ' )) die ('Logfile path error. ' );
90+
91+ $ log = '' ;
92+ if (is_readable ($ logfile )) {
93+ if ($ fd = popen ("tail -n 30 $ logfile " , 'r ' )) {
94+ while (!feof ($ fd )) {
95+ $ log .= fgets ($ fd , 4096 );
96+ $ n ++;
97+ if ($ n > 1000 ) break ;
98+ }
99+ fclose ($ fd );
100+ }
101+ } else {
102+ $ log = 'Unable to read ' .$ logfile ;
103+ }
104+ }
105+
106+ $ log = nl2br ($ log );
107+
108+ $ app ->tpl ->setVar ("log " ,$ log );
109+ $ app ->tpl ->setVar ("logfile " ,$ logfile );
110+
111+
112+ $ app ->tpl_defaults ();
113+ $ app ->tpl ->pparse ();
114+ ?>
0 commit comments