我的房间里有一台带有双核处理器和基本互联网的服务器(没什么花哨的)
我正在运行 ubuntu 11.04,并且正在从 crontab 运行 php 脚本。
0 3 * * * php back_up_to_s3.php
此脚本运行大约需要 20-30 分钟。从 crontab 运行时它工作正常,但是如果我与其他需要大约 5-10 分钟才能运行的脚本同时运行它。
0 3 * * * php back_up_to_s3.php
0 3 * * * php do_this.php
0 3 * * * php do_that.php
它没有完成。我的猜测是它正在超时。这里是来源back_up_to_s3.php
include('Zend/Service/Amazon/S3.php');
include("connect_to_database.php");
$my_aws_key = '******';
$my_aws_secret_key = '******';
Zend_Service_Amazon_S3::setKeys($my_aws_key, $my_aws_secret_key);
$s3 = new Zend_Service_Amazon_S3();
$fileName = exec("date +'%m_%d_%y'") . '.tar';
$filePath ="/home/me/temp_db_backups/$fileName";
exec("mysqldump -h localhost -u root -ppassword DATABASE_NAME > $filePath");
$s3->putObject('myBucket/' . $fileName, file_get_contents($filePath),
array(Zend_Service_Amazon_S3::S3_ACL_HEADER =>
Zend_Service_Amazon_S3::S3_ACL_PRIVATE,
Zend_Service_Amazon_S3::S3_CONTENT_TYPE_HEADER =>
'audio/mpeg'
));
unlink($filePath);
我知道脚本没有完成,因为 tarred 备份没有出现在我的 s3 存储桶中。但是 tar 文件被创建并且仍在我的文件中,/home/me/temp_db_backups
所以我知道脚本在$s3-putObject
执行时终止。