2010-07-18 56 views
1

在实现我在this serverfault question中描述的备份脚本时,我遇到了一些超时问题,这些问题提示优化了代码(即每次执行脚本时备份一个文件并尽我所能将其最小化我正在计算非常大的数据文件中的文件哈希数)。PHP超时和FTP功能

到目前为止,这似乎解决了超时问题,但考虑到文件的大小,在脚本超时之前确实需要比标准30分配时间更长的传输空间。如果发生这种情况,我认为该文件将被部分传输而被简化。有什么办法可以防止这种情况发生?

请注意,我在共享宿主环境中运行,因此不能编辑php.ini文件。

回答

0

根据set_time_limit(),这不应该是一个问题,因为花费的时间执行计算脚本超时问题的执行时间时,不包括脚本以外的活动。

+0

我正在运行一系列测试,一些文件大小超过500MB,所以我们应该看看这是否适用于我的具体情况。 – 2010-07-18 05:28:56

1

如果启用,您可以拨打set_time_limit()。另外,如果你从命令行运行php(通过cron或类似的),最大执行时间不适用。

+0

我正在通过cron运行,但在最近的优化之前,我仍然收到“致命错误:超过30秒的最大执行时间”消息。 – 2010-07-18 05:11:04

+0

嗯...也许你的SAPI是CGI,而不是CLI,因为共享主机环境。你可以用php_sapi_name()检查:http://us2.php.net/manual/en/function.php-sapi-name.php – cbednarski 2010-07-18 17:35:49

0

你可以尝试通过shell运行ftp作业吗?可能在共享主机上工作...

shell_exec('nohup ftp my-ftp-command 2> /dev/null');