Php通过api脚本创建cronjob无法正常工作

时间:2016-04-10 15:47:58

标签: php

我想在我的网站上使用脚本在直接管理面板中创建一个cronjob

         <form action="http://serverip:2222/CMD_LOGIN" method="POST" 
        name="form">
        <input type=hidden name=referer value="/">
        <input type=hidden name=username value="username">
        <input type=hidden name=password value="password">
        </form>
         <script>
         document.form.submit();
         </script>

登录正在运行。 但是我怎么能添加cronjob?我没试过就试过了。

Cronjob api direct admin http://www.directadmin.com/features.php?id=364

           GET or POST
           action=create
            minute=cron value
            command=/home/username/pathtorun

我必须在登录表单中编辑哪些内容来创建cronjob?

这就是我试过的

     <form action="http://serverip:2222/CMD_API_CRON_JOBS" method="POST" 
    name="form">
    <input type=hidden name=referer value="/">
    <input type=hidden name=username value="username">
    <input type=hidden name=password value="password">
    <input type=hidden name=action value="create">
    <input type=hidden name=minute value="2">

    </form>

     <script>
     document.form.submit();
     </script>

结果:没有登录/没有别的

1 个答案:

答案 0 :(得分:1)

我想我想要实现和你一样的东西,而且我在不到30分钟的时间里就可以通过使用httpsocket.php实现它,你可以从官方的Directadmin网站下载。

我有两个问题需要解决:

  1. 使用ssl://而不是http://
  2. 使用您的网站托管域名而不是您自己的域名。
  3. 示例脚本(仅用于查看现有的cron作业)如下所示:

    include 'httpsocket.php';
    
    $sock = new HTTPSocket;
    
    $sock->connect('ssl://$DOMAINOFWEBSERVER$',2222);
    $sock->set_login('$LOGIN$','$PASSWORD$');
    
    // $sock->set_method('POST');
    
    $sock->query('/CMD_API_CRON_JOBS');
    $result = $sock->fetch_parsed_body();
    
    print_r($result);
    

    要添加cron作业,只需将其替换为:

    include 'httpsocket.php';
    
    $sock = new HTTPSocket;
    
    $sock->connect('ssl://$DOMAINOFWEBSERVER$',2222);
    $sock->set_login('$LOGIN$','$PASSWORD$');
    
    $sock->set_method('POST');
    
    $sock->query('/CMD_API_CRON_JOBS',
            array(
                    'action' => 'create',
                    'minute' => "1",
                    'hour' => "12",
                    'dayofmonth' => "*",
                    'month' => "*",
                    'dayofweek' => "*",
                    'command' => "/home/username/pathtorun"
        ));
    
    
    $result = $sock->fetch_parsed_body();
    
    print_r($result);