2011-01-07 235 views
1

在PHP什麼是最好的方式來運行一個腳本完成後,例如我有這兩個文件。亞馬遜S3備份

我的備份文件。

<?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/'); 
?> 

我有我的亞馬遜s3上傳文件。

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

?> 

好了,所以此刻我有一個cron作業設置來運行備份php文件,然後一個小時後運行亞馬遜上傳PHP文件。

我在問什麼是我可以結合這些腳本,所以我只需要運行一個cron作業而不是兩個?

任何幫助,請

回答

1

你可以做備份,當它完成通過URL(#1)腳本中調用上傳(#2)腳本。

# Script Number 1 - Backup 
/* After all the content */ 
@file_get_contents('http://www.yourserver.com/uploadToS3.php?protector=somethingSecret'); 

# Script Number 2 - Uploader (available at the URL above) 
/* Before all the content */ 
if($_GET['protector']!='somethingSecret'){ 
    die('Access Blocked'); 
} 

這意味着,當備份腳本完成時,會觸發上傳腳本。 protector=somethingSecret只是爲了防止它被意外觸發。

0

修改cron作業以在第一個腳本之後運行第二個腳本。因爲在cronjob的命令字段看起來像這樣:

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

我在我的許多cronjobs上使用這種方法。