2011-01-07 5 views
1

En php, quel est le meilleur moyen d'exécuter un script après avoir terminé pour exmaple j'ai ces deux fichiers.Amazon S3 Backup

Mon fichier de sauvegarde.

<?php 
require 'back-up.php'; 

#!/bin/php -d max_execution_time = 3600 

$backup_dirs = array('../bu/'); 
$backup = new backupclass($backup_dirs); 
$backup->backup('filesys','files/'); 
?> 

Le j'ai télécharger mon Amazon s3 fichier.

<?php 

require_once('S3.php'); 

$s3 = new S3('S3KEY', 'S3SECRETKEY'); 

$baseurl = "/home/mlcreative/public_html/bu/files"; 

if ($handle = opendir('./files/')) { 
    while (false !== ($file = readdir($handle))) { 
     if ($file != "." && $file != "..") { 

      if ($s3->putObjectFile("files/$file", "testingmlc333", "lighthouse/$file", S3::ACL_PUBLIC_READ)) { 

        echo "<strong>We successfully uploaded your file.</strong>"; 
        if (file_exists($baseurl . '/' . $file)) { unlink ($baseurl . '/' . $file); } 
}else{ 
        echo "<strong>Something went wrong while uploading your file... sorry.</strong>"; 
} 

     } 
    } 
    closedir($handle); 
} 

?> 

Ok, donc pour l'instant j'ai une configuration de tâche cron pour exécuter le fichier php de sauvegarde, puis une heure plus tard exécuter le fichier de téléchargement amazone php. Ce que je demande est comment je pourrais les combiner à un script donc je dois seulement exécuter un travail cron au lieu de deux ???

Toute aide s'il vous plaît

Répondre

1

Vous pouvez faire la sauvegarde (# 1) de script appeler le script upload (# 2) via une URL lorsqu'elle est terminée. Cela signifie que, lorsque le script de sauvegarde est terminé, il déclenche le script de téléchargement. Le protector=somethingSecret est juste là pour l'empêcher d'être accidentellement déclenché.

0

Modifiez le travail cron pour exécuter le second script après le premier script. Comme dans le domaine de la commande de la cronjob ressemblerait à quelque chose comme ceci:

php -f firstscript.php ; php -f secondscript.php 

J'utilise cette méthode sur plusieurs de mes cronjobs.