Ruby,php shell_exec和crontab无法正常工作

时间:2014-07-24 06:53:50

标签: php ruby debian crontab

   <?php


    $scan = shell_exec('ruby /home/user/wpscan/wpscan.rb --url site.com --enumerate vp --follow-redirection --threads 1000');

    And than...
     ... extracting data from array(); (explode("plugins:", 1))
     ... writing data[1] to txt file ...
     ... send mysql query with rule if() {} else {} ...
     ... unlink(); *.txt file ...
    ...that's all

     ?>

您好。通过crontab运行ruby脚本(wpscan)时遇到问题。 以root身份添加:

crontab -e

在cron:

* * * * php5 /home/user/wpscan/wpscan.php

什么时候到来 - php脚本启动,但是!除$scan以外的脚本的所有部分(使用ruby脚本的部分不起作用)。

我试图向ruby bin显示脚本完整路径:“哪个ruby”,而不是将这些路径复制到php文件。

在root下安装Ruby,所有脚本都具有最大权限,并且在root下创建。在各地的脚本中,我正在使用我需要连接的文件的完整路径。我也尝试使用php5的完整路径,但如果信任syslog.log - 这没关系。请帮助我。)

1 个答案:

答案 0 :(得分:0)

确定。我已经解决了这个问题。  从我的理解,即使我们从cron运行ruby脚本,这并不意味着我们有足够的权利。  所以,首先我做了:为sudoers增加了一个修复 - 为NOPASSWD提供root。  下一篇:我查看脚本中的所有文件,因为它们必须是完整的(即:/bin/php5 /home/test/test.php)  比我在脚本中添加SUDO命令:

<?php
$test = shell_exec('sudo ruby /home/test/test.rb');
?>

不要忘记chmod + x file.php

在cron我用过:

crontab -e
*   *   *   *   *   php5 /home/test/test.php

这就是全部:)现在一切正常。  我的一些错误:

  • 不要忘记从文件中进行测试输出(即:sh run.sh&gt; test.txt);

  • 使用带有cron的邮件提醒器,它也可以提供帮助

  • 如果您从cron运行某些东西 - 最好使用完整路径

    感谢mudasobwa的建议和时间:)