script per fare un backup da server a server

gnappoman

Nuovo Utente
14 Mar 2011
3
0
0
Ciao ragazzi,
avrei bisogno di scrivere un semplice script di backup, che faccia la copia di una serie di files el tipo site-www.miosito.net-20110313-192632.jpa
già creati in automatico dall'ottimo akeeba backup, ad un altro server, entrando via ftp.

Ci sono due cose però:

1- sul server di partenza lo spazio è illimitato, ma la dimensione di ogni file non può essere superiore ai 4 mb, quindi i vari files saranno fatti a pezzetti dall'ottimo akeeba backup, del tipo site-www.miosito.net-20110313-192632-001.jpa site-www.miosito.net-20110313-192632-002.jpa etc....
Quindi terrò l'opzione di mantenere sul server tutti i backup senza mai cancellarli, però a pezzetti, e il numero di pezzetti sarà variabile, perchè il sito potrebbe ingrandirsi/rimpicciolirsi in base a quello che succede.

2- sul server di arrivo non solo lo spazio a disposizione è limitato, ma anche la banda è molto ridotta, quindi ci trasferirei, di giorno in giorno, solo l'ultimo dei bakup fatti sull'altro sito.

dunque in sostanza lo script di backup periodicamente (avvio impostato sul cron del server):

1- controlla data e ora dei file nella cartella preposta e sceglie i più recenti, eseguendo un loop fino ad individuarne tutte le parti
2- apre una connessione ftp con il server remoto e copia il tutto in una cartella tempornea verificando che l'operazione sia andata a buon fine, altrimenti riprova finchè non ce la fa
3- fa piazza pulita di ciò che trova nella cartella preposta e poi ci sposta dentro i file della cartella temporanea

Che ne dite? Sapete di qualcosa di già fatto?
Forse con qualche smanaggiamento questo potrebbe andare bn,,,:mavieni:

Grazie e ciao

ps questo potrebbe essere la prima parte di codice
<?php
$files = glob('cartella/*.*');
$ieri=time()-(24*60*60);//leggo la data timestamp di 24 ore fa'
if(!empty($files)){
$mtimes = array();
foreach($files as $f)
{
if(file_exists($f))
$file=str_replace(".","_0_",$f);//tolgo il punto che da fastidio
$mtimes[$file] = filemtime($f); //li chiavi dell'array sono il nome dei files (modificato)
}
$ultimo=max($mtimes);
if($ultimo < $ieri){
echo "non ci sono file aggiornati nelle ultime 24 ore";
}else{
$chiave=array_search($ultimo, $mtimes);
$chiave=str_replace("_0_",".",$chiave);//rimetto il punto
echo "il file ".$chiave." è stato aggiornato il ".date("d m Y H:i:s",$ultimo);
}

}else{
echo "nella cartella non ci sono files";
}
?>
 
Ultima modifica:

Discussioni simili