在php中,在完成exmaple之后运行脚本的最佳方法是,我有这两个文件。
我的备份文件。
<?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作业而不是两个?
请帮助
答案 0 :(得分:1)
您可以让备份(#1)脚本在完成后通过URL调用上传(#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
只是为了防止它被意外触发。
答案 1 :(得分:0)
修改cron作业以在第一个脚本之后运行第二个脚本。就像在cronjob的命令字段中看起来像这样:
php -f firstscript.php ; php -f secondscript.php
我在许多cronjobs上使用这种方法。