【问题标题】:Execute a shell script with PHP at a specific Time在特定时间使用 PHP 执行 shell 脚本
【发布时间】:2018-10-04 02:53:24
【问题描述】:

此 PHP 代码应在保存在 $start 变量和 $end 变量中保存的时间启动一个 shell 脚本。所有文件都是chmod a+rwx。它适用于命令行但不适用于shell_exec()$start$end 变量的时间格式也正确hh:mm。我发现这个other Post 有人遇到了类似的问题,但那里的帖子对我没有任何帮助。

if ($_POST["device"] == "Ventilator") {
    $start = $_POST["start"];
    $end = $_POST["end"];

    if ($_POST["start"] != "0") {
        shell_exec('echo "/home/pi/IOT/gpio21high.sh" | at $start');
        echo "$start".
        "<br />";
    }

    if ($_POST["end"] != "0") {
        shell_exec('echo "/home/pi/IOT/gpio21low.sh" | at $end');
        echo "$end".
        "<br />";
    }

}

【问题讨论】:

  • 首先启用错误报告并查看您的日志。您可能还想添加一些 else{} 并查看它的去向。
  • `echo "$start"。 "
    ";'每次都会执行,所以 'else{}' 是无用的,但你在日志文件中是对的,它说“你无权使用 at”。 .我给了 .sh 和 .php 文件“a+rwx”的权利,你知道我错过了什么吗?
  • 我在阅读时犯了一个错误,日志文件很旧,所以这不是问题
  • @mario 我检查了您链接的帖子中的每个答案,但这些都不起作用

标签: php linux shell


【解决方案1】:

将其作为 Cron 作业执行可能是个好主意,您可以按设定的时间间隔等方式执行它。

希望对你有帮助,谢谢,

【讨论】:

  • 我认为它并不适合作为 cron 作业,因为脚本本身会安排“at”cronjobs。
猜你喜欢
  • 2010-12-31
  • 1970-01-01
  • 2013-02-10
  • 2011-12-01
  • 2013-06-13
  • 2011-12-06
  • 1970-01-01
  • 2018-03-28
  • 2016-07-02
相关资源
最近更新 更多