1

我的房间里有一台带有双核处理器和基本互联网的服务器(没什么花哨的)

我正在运行 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执行时终止。

4

1 回答 1

1

你好 LedZeppelin(怀疑我是否会这么说:)
与其猜测可能发生的事情,不如将输出重定向到一个日志文件,你肯定会知道

0 3 * * * php back_up_to_s3.php >/tmp/backup_cronoutput 2>&1
0 3 * * * php do_this.php >/tmp/do_this_cronoutput 2>&1
0 3 * * * php do_that.php >/tmp/do_that_cronoutput 2>&1
于 2012-05-05T23:54:43.720 回答