| Current File : //proc/2/cwd/proc/2/root/etc/node_exporter/scripts/jetback_lastbackup |
#!/usr/bin/php -qd disable_functions=""
<?php
error_reporting(0);
date_default_timezone_set('UTC');
$out_lines=array();
$status = array(0 => 'nothing', 1 => 'Completed', 2 => 'Failed', 3 => 'Aborted', 4 => 'Partially Complete', 5 => 'Never Finished', 6 => 'Processing');
$check_jetbackup_version = exec("jetbackup5api 2>&1");
if (strpos($check_jetbackup_version, "command not found") === FALSE) {
$api_call = exec("jetbackup5api -F listLogs -D 'find[type]=1&sort[start_time]=-1&limit=20' -O json");
$jtb_version = 5;
} else {
$api_call = exec("jetapi backup -F listLogs -D 'find[type]=1&sort[start_time]=-1&limit=20' -O json");
$jtb_version = 4;
}
//$api_call = exec("jetapi backup -F listLogs -D 'find[type]=1&sort[start_time]=-1&limit=20' -O json");
//$api_call = exec("jetbackup5api -F listLogs -D 'find[type]=1&sort[start_time]=-1&limit=20' -O json");
if (empty($api_call) || strpos($api_call, "command not found") !== FALSE) {
$policy_value=-1;
$policy_up=-1;
} else {
$logs_result= json_decode($api_call, true);
$logs_result=$logs_result['data']['logs'];
$policy_label=array("state"=>"unknown");
$policy_value=-1;
$policy_up=1;
if (!empty($logs_result)) {
foreach ($logs_result as $log_line) {
if ($log_line['status'] < 6) {
if(isset($log_line['execution_time']) && $log_line['info']['Backup'] != "JetBackup Config" ){
$policy_label=array("state"=>strtolower($status[$log_line['status']]));
$policy_value=strtotime(empty($log_line['end_time'])?$log_line['start_time']:$log_line['end_time']);
break;
} elseif(!isset($log_line['execution_time'])){
$policy_label=array("state"=>strtolower($status[$log_line['status']]));
$policy_value=strtotime(empty($log_line['end_time'])?$log_line['start_time']:$log_line['end_time']);
break;
}
}
}
}
add_oline('jetbackup_last', $policy_value, $policy_label);
}
add_oline('jetbackup_version', $jtb_version);
add_oline('jetbackup_up', $policy_up);
function add_oline($name, $value, $labels = "") {
global $out_lines;
$name = strtolower(str_replace(" ", "_", $name));
$final_labels = array();
if (is_array($labels)) {
foreach ($labels as $k => $v) {
if (is_numeric($v)) {
$final_labels[strtolower($k)] = $v;
} else if (is_string($v)) {
$final_labels[strtolower($k)] = "\"" . $v . "\"";
}
}
}
$out_lines[] = $name . ((!empty($final_labels) && count($final_labels) > 0) ? ("{" .
implode(',', array_map(
function ($vv, $kk) {
return sprintf("%s=%s", $kk, $vv);
},
$final_labels,
array_keys($final_labels)
)
)."}") : "") . " " . (is_numeric($value) ? $value : 0.00);
}
if (!empty($out_lines)) {
foreach ($out_lines as $line) {
echo $line.PHP_EOL;
}
}