【问题标题】:How to set Cron Job using phpseclib?如何使用 phpseclib 设置 Cron Job?
【发布时间】:2018-05-17 22:59:46
【问题描述】:
        set_include_path(get_include_path() . PATH_SEPARATOR . 'C:\wamp\www\Web Apps\backend\phpsec');
        include ('phpsec/Net/SSH2.php');
        $ssh = new Net_SSH2('www.example.com');
        if (!($ssh->login('userlogin', 'password'))) {
            exit('Login Failed');
        }

        echo "Login Success<br>";


        $output=$ssh->exec('crontab -e;30 17 * * 1 /path/to/command')

        echo "$output";

我在这里尝试设置 cron 作业。但它给出了以下错误“打开终端时出错:未知。/usr/bin/crontab.cagefs:“pico”以状态 1 bash 退出:30:找不到命令”那么如何使用phpseclib?

【问题讨论】:

  • 这听起来像是您要连接的服务器上的问题。您可以执行该行以在没有问题的情况下编辑 cronjob 吗?
  • 我可以删除那里的 cron 作业,但我不能添加。 @NicoHaase
  • 查看stackoverflow.com/a/9625233/569976。你可能需要一个 PTY 来做一些这样的事情 idk
  • 试试crontab -l | { cat; echo -e "30 17 * * 1 /path/to/command"; } | crontab -不用打开cron
  • @JesilDesouza 其他 cmets 应该可以帮助您找到解决方案 - 这不是基于 PHP 或 phpseclib 的问题,而是错误执行的 shell 命令

标签: php bash cron phpseclib


【解决方案1】:

在 exec() 函数中编写以下命令

  $ssh->exec('crontab -l | { cat; echo "* * * * * /path/to/command/"; } | crontab -');

【讨论】:

    猜你喜欢
    • 2014-03-07
    • 2016-01-20
    • 1970-01-01
    • 2011-08-31
    • 2013-09-17
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多