Script para backup em PHP

O script facilita o backup, porem nao esquecer que o SSH2 do PHP retorna caracteres de controle misturados (chr(27)).

#!/usr/bin/php
<?php
/* 
 * bkp.php - Copia backup do BD Oracle
 * Helder - 08-12-2009
 */

$nl = "\n";
$data = date('Y_m_d');
$dir = '/home/helder/Oracle/bkp_'.$data;
echo "Criando diretorio $dir $nl";
@mkdir($dir);

echo "Conectando...$nl";
if (!($connection = ssh2_connect('192.168.1.20', 22))) {
 echo "Falhou $nl"; exit;
}
if (!ssh2_auth_password($connection, 'oracle', 'suporte')) {
 echo "Falhou $nl"; exit;
}

echo "Lista de arquivos $nl";
if (!($files = @ssh2_shell($connection,"xterm"))) {
 echo "Falhou $nl "; exit;
}
fwrite($files,"ls /u01/oracle/backup/orcl/* $nl");
sleep(1);
$arquivos = '';
while($line = fgets($files)) {
 flush();
 $arquivos .= $line;
}
$arquivos = str_replace(chr(27),"\n",$arquivos);
fclose($files);
preg_match_all('/\/u.*[\n\r]/',$arquivos,$files);

// Nova conexao .............
echo "Conectando...$nl";
if (!($connection = ssh2_connect('192.168.1.20', 22))) {
 echo "Falhou $nl"; exit;
}
if (!ssh2_auth_password($connection, 'oracle', 'suporte')) {
 echo "Falhou $nl"; exit;
}

$arquivo = 'vns.dmp'     ; echo "Copiando $arquivo $nl";
ssh2_scp_recv($connection, '/tmp/vns.dmp', $dir.'/'.$arquivo);
$arquivo = 'dbnoite.dmp' ; echo "Copiando $arquivo $nl";
ssh2_scp_recv($connection, '/u01/oracle/admin/orcl/dmp/dbnoite01.dmp', $dir.'/'.$arquivo);
$arquivo = 'dbdia.dmp'   ; echo "Copiando $arquivo $nl";
ssh2_scp_recv($connection, '/oracle/admin/orcl/dmp/dbdia01.dmp', $dir.'/'.$arquivo);

$dir = $dir."/rman";
@mkdir($dir);


echo "Criando diretorio $dir $nl";
foreach($files[0] as $arquivo) {
 $arquivo = chop(rtrim($arquivo));
 if (strpos($arquivo,'*')===FALSE) {
 $destino = $dir.'/'.basename($arquivo);
 echo "Copiando $arquivo para $destino $nl";
 ssh2_scp_recv($connection, $arquivo, $destino);
 }
}

?>

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s