【问题标题】:Run shell commands with PHP?用 PHP 运行 shell 命令?
【发布时间】:2010-08-28 06:15:30
【问题描述】:

有时我的媒体服务器出现故障,我想知道是否可以使用 php 远程启动它来检查端口,以及它是否没有运行调用 cron(或其他方式)来运行 shell 命令。这可能吗,因为这对我来说不是一个强大的领域。这是我使用 PuTTy 的过程。

  1. 登录外壳
  2. cd 到 source/red5/dist
  3. 屏幕
  4. ./red5.sh
  5. CTRL-A 然后 D 分离
  6. 注销

【问题讨论】:

  • 您可能会发现“monit”工具很方便:mmonit.com/monit。顺便说一句,也许您可​​以将这些步骤压缩到:ssh user@example.com 'cd source/red5/dist && screen ./red5.sh'
  • 该行是否需要密码或注销命令?我对 shell 的了解为 0。

标签: php shell cron red5


【解决方案1】:

最简单的事情就是写一个shell脚本。然后login to remote console via PHP

  • shell_exec:执行一个shell命令并以字符串形式返回输出。
  • exec: 只是执行一个外部程序

【讨论】:

    【解决方案2】:

    实现您想要的一个简单方法是在屏幕中运行它:

    while /bin/true ; do ./red5.sh ; done
    

    【讨论】:

      【解决方案3】:

      如果你可以编写一个 shell 脚本来满足你的需要,那么 PHP 就有 exec()system()passthru() 供你使用。

      【讨论】:

        【解决方案4】:

        PHP其实有一个特殊的操作符来执行shell命令,the backtick:

        `cd source/red5/dist`
        

        将转到指定目录。 (但我对 shell 了解不多,所以我无法实现你的全部。)

        如果您需要对执行进行更多控制(我不知道您是否需要这里),请使用proc_open

        【讨论】:

          【解决方案5】:

          您可以在 php 上使用corn job,并将所有命令放在 .sh 文件中并像这样运行

          59 11 * * 1,2,3,4,5 根命令文件.sh?token

          这样的,会保存的

          【讨论】:

            【解决方案6】:

            这里有不止一个好的答案,但您应该选择为 red5 执行 init 脚本而不是 .sh 或 .bat。这里有预制的初始化脚本:http://code.google.com/p/bigbluebutton/downloads/detail?name=red5&can=2&q= 和这里:http://www.videowhisper.com/forum.php?ftid=48&t=init-file-red5-linux-installations-red5-linux-init.d-chkconfig

            【讨论】:

              猜你喜欢
              • 2015-07-17
              • 2022-11-28
              • 2013-04-20
              • 1970-01-01
              • 1970-01-01
              • 2015-08-18
              • 2013-11-28
              • 1970-01-01
              • 2017-02-08
              相关资源
              最近更新 更多