]> git.sur5r.net Git - bacula/bacula/blob - gui/bacula-web/backupjob-report.php
bacula-web: new icons file in style/images folder
[bacula/bacula] / gui / bacula-web / backupjob-report.php
1 <?php\r
2   session_start();\r
3   include_once( 'config.inc.php' );
4 \r
5   $dbSql = new Bweb();\r
6 \r
7   $backupjob_name               = "";
8   $backupjob_bytes              = 0;
9   $backupjob_files              = 0;
10 \r
11   $days                                 = array();
12   $days_stored_bytes    = array();
13   $days_stored_files    = array();
14
15   // ===============================================================
16   // Get Backup Job name from GET or POST\r
17   // ===============================================================
18   if( isset( $_POST["backupjob_name"] ) )\r
19     $backupjob_name = $_POST["backupjob_name"];\r
20   elseif( isset( $_GET["backupjob_name"] ) )\r
21         $backupjob_name = $_GET["backupjob_name"];\r
22   else\r
23         die( "Please specify a backup job name " );\r
24 \r
25   // Get the last 7 days interval (start and end)\r
26   for( $c = 6 ; $c >= 0 ; $c-- ) {\r
27           $today = ( mktime() - ($c * LAST_DAY) );\r
28           array_push( $days, array( 'start' => date( "Y-m-d 00:00:00", $today ), 'end' => date( "Y-m-d 23:59:00", $today ) ) );\r
29   }\r
30   
31   // Generate Backup Job report period string\r
32   $backupjob_period = "From " . date( "Y-m-d", mktime()-LAST_WEEK ) . " to " . date( "Y-m-d", mktime() );\r
33   
34   // ===============================================================
35   // Last 7 days stored Bytes graph\r
36   // ===============================================================  
37   $graph = new BGraph( "graph2.png" );\r
38 \r
39   foreach( $days as $day )\r
40     array_push( $days_stored_bytes, $dbSql->GetStoredBytesByJob( $backupjob_name, $day['start'], $day['end'] ) );\r
41  \r
42   // Calculate total bytes for this period\r
43   foreach( $days_stored_bytes as $day )\r
44         $backupjob_bytes += $day[1];\r
45         \r
46   $graph->SetData( $days_stored_bytes, 'bars', 'text-data' );\r
47   $graph->SetGraphSize( 400, 230 );\r
48 \r
49   $graph->Render();\r
50   $dbSql->tpl->assign('graph_stored_bytes', $graph->Get_Image_file() ); 
51   \r
52   // ===============================================================
53   // Getting last 7 days stored files graph\r
54   // ===============================================================
55   $graph = new BGraph("graph3.png" );\r
56   \r
57   foreach( $days as $day )\r
58     array_push( $days_stored_files, $dbSql->GetStoredFilesByJob( $backupjob_name, $day['start'], $day['end'] ) );\r
59 \r
60   // Calculate total files for this period      \r
61   foreach( $days_stored_files as $day )\r
62         $backupjob_files += $day[1];\r
63   \r
64   $graph->SetData( $days_stored_files, 'bars', 'text-data' );\r
65   $graph->SetGraphSize( 400, 230 );\r
66 \r
67   $graph->Render();\r
68   $dbSql->tpl->assign('graph_stored_files', $graph->Get_Image_file() );
69 \r
70   // Last 10 jobs\r
71   $query    = "SELECT JobId, Level, JobFiles, JobBytes, JobStatus, EndTime, Name ";  \r
72   $query   .= "FROM Job ";\r
73   $query   .= "WHERE Name = '$backupjob_name' ";\r
74   $query   .= "ORDER BY EndTime DESC ";\r
75   $query   .= "LIMIT 10 ";\r
76   \r
77   $jobs         = array();\r
78   $joblevel = array( 'I' => 'Incr', 'D' => 'Diff', 'F' => 'Full' );\r
79   $result       = $dbSql->db_link->query( $query );\r
80   \r
81   if( ! PEAR::isError( $result ) )\r
82   {\r
83         while( $job = $result->fetchRow( DB_FETCHMODE_ASSOC ) ) {\r
84                 $job['Level'] = $joblevel[ $job['Level'] ];\r
85                 array_push( $jobs, $job);\r
86         }               
87   }else\r
88         die( "Unable to get last jobs from catalog " . $result->getMessage() );\r
89     \r
90   $dbSql->tpl->assign('jobs', $jobs );
91   $dbSql->tpl->assign('backupjob_name', $backupjob_name );
92   $dbSql->tpl->assign('backupjob_period', $backupjob_period );
93   $dbSql->tpl->assign('backupjob_bytes', $backupjob_bytes );
94   $dbSql->tpl->assign('backupjob_files', $backupjob_files );
95   \r
96   // Process and display the template \r
97   $dbSql->tpl->display('backupjob-report.tpl'); 
98   \r
99 ?>\r