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