如果同时运行其他脚本,php脚本会从crontab中运行

时间:2012-05-04 23:17:00

标签: apache2 cron crontab amazon-s3 zend-framework

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

我正在运行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);

我知道脚本没有完成,因为tar版备份没有出现在我的s3存储桶中。但是tar文件已经创建并且仍在我的/home/me/temp_db_backups中,所以我知道脚本会在$s3-putObject执行时终止。

1 个答案:

答案 0 :(得分:1)

Hello 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