Script-for-probes-backup

From VoIPmonitor.org
Revision as of 02:45, 9 March 2021 by Petr.halounek (talk | contribs) (Created page with "<?php $silence=false; $today=date("Y-m-d"); $backupfolder="/home/voipmonitor/backup-config/$today"; exec("mysql -h MYSQLIP -u MYSQLUSER -pPASSWORD -e 'select id_sensor...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

<?php

 $silence=false;
 $today=date("Y-m-d");
 $backupfolder="/home/voipmonitor/backup-config/$today";
 exec("mysql -h MYSQLIP -u MYSQLUSER -pPASSWORD -e 'select id_sensor,host from voipmonitor.sensors\G'",$out,$rc);

if($rc) $notify[]="No connection to DB"; $notify=false; $sensors=array();

  1. get id_sensor as a key, host,port into subfield - dirtyway

foreach ($out as $key => $line) {

 if ($line[0]=="*") continue;
 if (strpos($line,"id_sensor") === FALSE) continue;
 $tempid=explode (":",$line,2);
 $temphost=explode (":",$out[$key+1],2);
 $sensors[trim($tempid[1])]['host']=trim($temphost[1]);

}

  1. get config from each host using ssh

foreach ($sensors as $id=>$sensor) {

 $destdir="$backupfolder/$id";
 if (!file_exists($destdir)) mkdir($destdir, 0777, true);
 exec("scp voipmonitor@".$sensor['host']."://etc/voipmonitor.conf $destdir",$out,$rc);
 if($rc) $notify[]='Cannot ssh to'.$sensor['host'];

}

  1. backup database tables

$destdir="$backupfolder/mysql-config"; if (!file_exists($destdir)) mkdir($destdir, 0777, true); exec ("php /var/www/html/php/run.php backupGuiTables -t config -f $destdir/backup.zip",$out,$rc) if($rc) $notify[]='Cannot backup mysql config tables';

  1. If silence not set print errors

if($notify&&!$silence) print_r($notify);

?>