Advertisement
Papadopolis

Untitled

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