<?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);
}
}
?>