<?php // On vérifie qu'il n'y a pas d'autre exécution de ce fichier en cours if (($fp = fopen('lock.txt', 'r'))) { $lock = fgets($fp); fclose($fp); } if ($lock == 'unlocked') { // On lock pour éviter d'autres exécutions de ce fichier if (($fp = fopen('lock.txt', 'w'))) { fputs($fp, 'locked'); fclose($fp); } // Modifier la variable $exclude_dirs dans ce fichier pour changer la liste des dossiers à exclure require_once('pclzip.lib.php'); // On génère le nom de l'archive $dir = './files/'; $file = date('Y-m-d_H-i-s') . '.zip'; $archive = new PclZip($dir . $file); // On sélectionne le répertoire à archiver $v_dir = dirname(getcwd()); $v_remove = $v_dir; // On crée l'archive $v_list = $archive->create($v_dir, PCLZIP_OPT_REMOVE_PATH, $v_remove); // On unlock pour permettre une future exécution de ce fichier if (($fp = fopen('lock.txt', 'w'))) { fputs($fp, 'unlocked'); fclose($fp); } // On log ce qu'il s'est passé $from = "From: CRON <adresse@domaine.extension>\r\n"; $to = "adresse@domaine.extension"; $subject = "Backup site ".date('d/m/Y H:i:s'); if ($v_list == 0) { if (($fp = fopen('error.log', 'a'))) { fputs($fp, date('d/m/Y H:i:s')." ".$archive->errorInfo(true)."\n"); fclose($fp); } $content = "KO\n"; } else $content = "ok\n"; if (!mail($to, $subject, $content, $from)) if (!mail($to, $subject, $content, $from)) if (!mail($to, $subject, $content, $from)) if (($fp = fopen('error.log', 'a'))) { fputs($fp, date('d/m/Y H:i:s')." Erreur lors de l'envoi du mail '$subject $content'\n"); fclose($fp); } } ?>