Apache2 如果同时运行其他脚本,则从crontab运行的php脚本将超时

Apache2 如果同时运行其他脚本,则从crontab运行的php脚本将超时,apache2,cron,crontab,amazon-s3,zend-framework,Apache2,Cron,Crontab,Amazon S3,Zend Framework,我房间里有一台服务器,配有双核处理器和基本的互联网(没什么特别的) 我正在运行Ubuntu11.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_t

我房间里有一台服务器,配有双核处理器和基本的互联网(没什么特别的)

我正在运行Ubuntu11.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
还没完。我猜是时间到了。下面是
备份到\u 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);
我知道脚本没有完成,因为涂了焦油的备份没有出现在我的s3存储桶中。然而,tar文件被创建,并且仍然在我的
/home/me/temp\u db\u备份中
,因此我知道脚本在执行
$s3 putObject
时终止。

你好,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 0 3***php备份到\u s3.php>/tmp/backup\u cronoutput 2>&1 0 3***php do_this.php>/tmp/do_this\u cronoutput 2>&1 0 3***php do_that.php>/tmp/do_that\u输出2>&1 你好,莱德齐柏林飞艇(我怀疑我是否会这样说:)
不要猜测会发生什么,而是将输出重定向到日志文件,这样您就可以确定了

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 0 3***php备份到\u s3.php>/tmp/backup\u cronoutput 2>&1 0 3***php do_this.php>/tmp/do_this\u cronoutput 2>&1 0 3***php do_that.php>/tmp/do_that\u输出2>&1
可能尝试在php.ini(可能是/etc/php.ini)中增加max_execution_时间。这不会有帮助,因为cli max_execution time已硬编码为0。可能尝试在php.ini(可能是/etc/php.ini)中增加max_execution_时间。这不会有帮助,因为cli max_execution time已硬编码为0,我遵循了你的建议,并将错误消息追溯到了其他人面临的常见问题。谢谢kevin,我遵循了你的建议,并将错误消息追溯到了其他人面临的常见问题。