Advertisement
Papadopolis

Untitled

Jul 4th, 2011
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.76 KB | None | 0 0
  1. <pre>
  2. <?php
  3. /**
  4.  * Jeito TOTALLY POG de adicionar uma tarefa de cronjobs aleatória
  5.  *
  6.  * O.E.
  7.  * */
  8.  
  9.  
  10. /**
  11.  * Aqui eu carrego uma lib que uso em todos meus scripts,
  12.  * são só classes que faço para que o script leve menos tempo pra ser feito
  13.  * */
  14. include "interface/classes.php";
  15. define("CPANEL_USER",""); /** Login do cPanel */
  16. define("CPANEL_PASS",""); /** Senha */
  17. define("CPANEL_PORT", 2082); /** O meu cPanel particularmente usa essa porta, deve ser a padrão.. */
  18. /**
  19.  * Se tu quiser usar MultiCurl que fiz me avisa que posto essa classe também, ou então tu cria uma função curl pra enviar as requisições
  20.  * */
  21. $curl = new MultiCurl;
  22. $curl->setCurlopt(array(
  23.     CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
  24.     CURLOPT_PORT => CPANEL_PORT,
  25.     CURLOPT_USERPWD => CPANEL_USER.':'.CPANEL_PASS,
  26.     CURLOPT_RETURNTRANSFER => 1,
  27.     CURLOPT_COOKIE => null,
  28.     CURLOPT_HEADER => 0,
  29.     CURLOPT_NOBODY => 0,
  30.     CURLOPT_FOLLOWLOCATION => 1,
  31. ));
  32.  
  33. $pagina     = "http://google.com"; /** Página que será executada pela tarefa aleatória */
  34. $dominio    = "http://x470.com"; /** Teu domínio, sem barra no fim. */
  35. $hora       = rand(10,16); /** Programa o script para executar entre as horas 3 e 15, por exemplo */
  36.  
  37. /**
  38.  * Se liga onde tem linekey_1, linekey_2.. esses são os números das tarefas do cronjobs, se tu já tiver outras tarefas lá, toma muito
  39.  * cuidado pro script não acabar deletando o que não devia deletar, eu fiz pra ele detectar qual é a tarefa que ele deve apagar, mas vai
  40.  * que buga..
  41.  * */
  42.  
  43. /**
  44.  * Pega o conteúdo da página que contém todas as tarefas
  45.  * */
  46. $PAPADOPOLIS = $curl->single("{$dominio}:".CPANEL_PORT."/frontend/x3/cron/cron_entries.html"); /** Requisição curl com o setopt que mandei ABOVE */
  47.  
  48. preg_match_all("/command.info.\d+\x22.*?\x22GET (.*?)\x22.*\n.*?value.{2}(.*?)\x22/i",$PAPADOPOLIS,$tarefasFiltro); /** Sou porco pra ReGexp, foda-se. */
  49.  
  50. /**
  51.  * Encontra a tarefa randômica que deve ser excluída
  52.  * */
  53. $tarefaAuth = null;
  54. for($i=0; $i<count($tarefasFiltro[1]); ++$i)
  55.     if($tarefasFiltro[1][$i] == $pagina)
  56.         $tarefaAuth = $tarefasFiltro[2][$i];
  57.  
  58. /**
  59.  * Deleta a que já foi executada
  60.  * */
  61. $excluirTarefa  = "{$dominio}:".CPANEL_PORT."/json-api/cpanel?cpanel_jsonapi_version=2&cpanel_jsonapi_module=Cron&cpanel_jsonapi_func=remove_line&linekey={$tarefaAuth}";
  62. $curl->add($excluirTarefa);
  63.  
  64. /**
  65.  * Adiciona a nova tarefa randômica no cronjobs
  66.  * */
  67. $novaTarefa     = "{$dominio}:".CPANEL_PORT."/json-api/cpanel?cpanel_jsonapi_version=2&cpanel_jsonapi_module=Cron&cpanel_jsonapi_func=add_line&minute=*&hour={$hora}&day=*&month=*&weekday=*&command=".rawurlencode("GET {$pagina}");
  68. $curl->add($novaTarefa);
  69.  
  70. /**
  71.  * Faz a mágica (executa todas as urls)
  72.  * */
  73. $exec = $curl->exec();
  74. ?>
  75. </pre>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement