?php
echo "########## Início do backup: ".date("d/m/Y H:m:s")." ##########\n\n";
function dateDiff($sDataInicial, $sDataFinal){
$sDataI = explode("-", $sDataInicial);
$sDataF = explode("-", $sDataFinal);
$nDataInicial = mktime(0, 0, 0, $sDataI[1], $sDataI[0], $sDataI[2]);
$nDataFinal = mktime(0, 0, 0, $sDataF[1], $sDataF[0], $sDataF[2]);
return ($nDataInicial > $nDataFinal) ?
floor(($nDataInicial - $nDataFinal)/86400) : floor(($nDataFinal - $nDataInicial)/86400);
}
$host = "localhost";
$login_bd = "login";
$senha_bd = "senha";
$db = "banco";
$con = mysql_connect($host, $login_bd, $senha_bd) or print mysql_error();
mysql_select_db($db, $con) or print mysql_error();
require ('classeAPI.php');
require ('PHPTelnet.php');
// pegas NAS
$sqlMik = mysql_query("select ip,conexao,usuario,senha from contratosNAS where backup = '1'");
if(mysql_affected_rows($con)){
while($linha = mysql_fetch_array($sqlMik)){
// variáveis
$ip = $linha['ip'];
$usuario = $linha['usuario'];
$senha = $linha['senha'];
$arquivo = "Mikrotik - ".$linha['ip']." - ".date("d-m-Y - H:i")."";
if($linha['conexao'] == "api"){
//Gerar Backup usando API
$API = new routeros_api();
$API->debug = false;
if ($API->connect($ip, $usuario, $senha)){
$API->write('/system/backup/save',false);
$API->write('=name=Backup.backup');
$API->read();
$API->disconnect();
}
// conexão ftp
if ($conecta = ftp_connect($ip)){
// login
if(ftp_login($conecta, $usuario, $senha)){
// faz download e salva o arquivo
if (ftp_get($conecta, "dados/".$arquivo.".backup","Backup.backup", FTP_BINARY")){
}else{
die("Problemas com Backup, verificar !!!");
}
// fecha conexão ftp
ftp_close($conecta);
}else{
echo "Nao foi possível efetuar o login no NAS: ".$ip."";
}
}else{
echo "Sem conexão FTP ao NAS: ".$ip."";
}
}
if($linha['conexao'] == "telnet"){
//Gerar Backup usando TELNET
$telnet = new PHPTelnet();
$resultado = $telnet->Connect($ip, $usuario, $senha);
switch ($resultado){
case 0:
$telnet->DoCommand('/system backup save name=Backup', $resultado);
break;
}
$telnet->Disconnect();
sleep(1);
// conexão ftp
if ($conecta = ftp_connect($ip)){
// login
if(ftp_login($conecta, $usuario, $senha)){
// faz download e salva o arquivo
if (ftp_get($conecta, "dados/".$arquivo.".backup","Backup.backup", FTP_BINARY")){
}else{
die("Problemas com Backup, verificar !!!");
}
// fecha conexão ftp
ftp_close($conecta);
}else{
echo "Nao foi possível efetuar o login no NAS: ".$ip."";
}
}else{
echo "Sem conexão FTP ao NAS: ".$ip."";
}
}
echo date("d/m/Y H:m:s")." - Backup efetuado: ".$ip."\n";
sleep(1);
}
}
// fecha conexão sql
mysql_close($con);
//excluir arquivos antigos (maiores que 20 dias)
// path da sua pasta de origem
$pasta = "dados/";
//abre o diretorio
if(!$open = @opendir($pasta)) die('O diretório não é valido\n!');
echo "\n";
while(($nomearq = readdir($open)) !== false) {
if($nomearq == "." or $nomearq == "..") continue;
$explode = explode(" - ",$nomearq);
$dataArquivo = $explode[2];
$dataHoje = date("d-m-Y");
$contaDias = dateDiff($dataHoje,$dataArquivo);
if ($contaDias >= 20){
$linkArquivo = "$pasta"."$nomearq";
unlink($linkArquivo);
echo "Arquivo excluído: ".$nomearq."\n";
}
}
echo "\n########## Fim do backup: ".date("d/m/Y H:m:s")." ##########\n\n";
?>