【问题标题】:php exec tar call fails when run via cron, works via shell通过cron运行时php exec tar调用失败,通过shell工作
【发布时间】:2010-09-07 19:34:01
【问题描述】:

谁能解释一下为什么从 shell 调用时这条线有效,但通过 crontab 调用时却失败了?

passthru("tar xvf $file $tarfile/application $tarfile/application_detail $tarfile/application_device_type $tarfile/genre_application");
}

cron 后我收到的电子邮件的错误是

tar:itunes20100907/应用程序: 无法打开:没有这样的文件或目录 itunes20100907/application_detail

【问题讨论】:

    标签: php exec tar


    【解决方案1】:

    正如错误所说,您必须在错误的目录中。您应该使用规范路径。


    注意:启用safe mode后,您只能执行safe_mode_exec_dir内的文件。出于实际原因,目前不允许在可执行文件的路径中包含 .. 组件。

    【讨论】:

    • 您可以使用 PHP 中的getcwd() 函数来找出您的脚本运行的路径。对于 cron 作业,它可能是 cron 用户的主文件夹。如果是 /home/ubuntu/,那么路径 itunes20100907/application 将被解释为 /home/ubuntu/itunes20100907/application
    猜你喜欢
    • 2016-05-27
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多