Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    45

    Backup automatico programmato

    Salve a tutti, avrei una richiesta da fare.

    Ho questo script 1_back che mi serve per eseguire il backup automatico di alcuni file di un sito:

    <?php

    $dir = '/percorso/del/file'; // Directory da salvare
    $filename = 'backups/backup' . date("MdY") . '.tar'; //percorso dove viene salvato il backup

    $ftp_server = 'ftp.miosito.com'; //Server FTP esterno
    $ftp_user_name = 'user'; //FTP username
    $ftp_password = 'password'; //FTP password

    if(system("tar cvf $filename $dir"))
    {

    $conn_id = ftp_connect($ftp_server);

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_password);

    if (($conn_id) || ($login_result)) {

    $upload = ftp_put($conn_id, 'httpdocs/backups/Back_sito' . date("MdY") . '.tar', $filename, FTP_BINARY); //percorso dove viene salvato il backup sul SERVER REMOTO

    }

    ftp_close($conn_id);

    }

    ?>
    Vorrei automatizzare l'esecuzione di questo script 1_back settimanalmente.
    Poichè non posso usare la funzione "Cron", volevo inserire in una pagina del sito un ulteriore script 2 che mi richiama quello precedente.

    Fin qui non ci sono particolari difficoltà, inserisco nella pagina web lo script 2:
    <script type="text/javascript" language="JavaScript" src="richiama_script_1_back.php"></script>
    Però io ho bisogno che lo script 2 prima di chiamare lo script 1_back controlli l'ultima volta che ha effettuato il richiamo e se non è passato il tempo preimpostato (ad esempio 1 settimana), non faccia nulla.

    Il mio problema è che non so come fare per fare questo controllo e per come impostare il tempo tra un richiamo e l'altro.
    Potete aiutarmi?

    GRAZIE

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se hai a disposizione un db crei una tabella chiamata "Backup", in essa una colonna "Ultimo" dove registri la data ogni volta che parte un backup.
    Script2 basta che controlli se è passato il tempo che vuoi con una query MySQL che faccia un confronto usando la funzione datediff.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    45
    Purtroppo io non lo sò fare .

    Inoltre preferivo non appoggiarmi a database perchè volevo un sistema autonomo da poter far girare ovunque in modo semplice e veloce.

    Potrebbe essere un file Txt in cui scrivere la data di ogni back e da qui lo script verifica il tempo trascorso. Io come detto sopra non sono in grado di farlo, anche perchè non conosco php ne java.

    Qualcuno riesce a fare qualcosa?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Script2 deve fare più o meno così
    Codice PHP:
    $file "file.txt";
    $handle fopen("file.txt","r");
    $last_backup fread($handlefilesize($file));
    fclose($handle);
    $now time();
    if(
    floor(($now $last_backup)/(60*60*24)) >= 7) { //7 è il numero di giorni che devono passare
        //comando per far partire il backup
        
        //questo aggiorna la data dell'ultimo backup
        
    $file "file.txt";
        
    $handle fopen("file.txt","w");
        
    fwrite($handle$now);
        
    fclose($handle);


  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    45
    E' proprio così che volevo che funzionasse.

    C'è però un ma legato alla mia ignoranza:
    nel codice che mi hai mandato non trovo nessun comando che gli dice di avviare il file " script 1_back" dopo aver fatto questa verifica.

    Visto che io sono ignorante, mi potete dare il codice che avvia il file " script 1_back" da aggiungere nel:
    Codice PHP:
    ???avvia file "script 1_back"???  //comando per far partire il backup 
    GRAZIE Alfredo

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    45
    Up
    Un ultimo aiutino???

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Script 1_back è un file php o cosa?
    Se è un file php basta che il comando per avviarlo sia un redirect a tale file.
    Codice PHP:
    $file "file.txt";
    $handle fopen("file.txt","r");
    $last_backup fread($handlefilesize($file));
    fclose($handle);
    $now time();
    if(
    floor(($now $last_backup)/(60*60*24)) >= 7) { //7 è il numero di giorni che devono passare

        //questo aggiorna la data dell'ultimo backup
        
    $file "file.txt";
        
    $handle fopen("file.txt","w");
        
    fwrite($handle$now);
        
    fclose($handle);

        
    //avvia lo script per il backup
        
    header('Location: script1_back.php');

    Perché il redirect funzioni non devi usare funzioni che producano un output a video o scrivere tu qualche cosa che appaia sulla pagina web.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    45
    E' un file php che contiene le istruzioni per far partire il backup.
    Il file funziona, mi serviva proprio un comando che lo facesse partire, e penso che come mi hai messo il codice funzioni.

    Porta pazienza, ma io di codice php sono ZERO , quindi puoi capire che non conoscevo la funzione header.

    Adesso lo provo ( ci vorranno qualche gg per vedere se si avvia in automatico) e vedo se funziona.

    GRAZIE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.