Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Espionando HL2
Por v3r9a
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Agendando execução de scripts PHP
Linux user
Publicado por Fábio Berbert de Paula em 12/11/2002

Login: fabio, 6481115 pontos | Blog: https://twitter.com/fabiodovol
[ Hits: 12387 ]

Agendando execução de scripts PHP

Uma pergunta muito frequente em fórums de discussão sobre linguagensde programação para web é a de como fazer para iniciar a execução deum script (página) automaticamente ? Uso javascript ? O PHP temalguma função que nos propicia isso ? A resposta é não, você deveutilizar o serviço de agendamento do Linux, o Cron em conjutocom um browser modo texto. Neste exemplo vamos usar o lynx, masnada o impede de usar similares, como o w3m.

Vamos supor que você tem um script que executa uma sincronização entreo seu banco de dados e um arquivo gerado por uma aplicação externa egostaria de automatizar essa tarefa ao invés de ter que acessar aURL do script via browser todos os dias.

Para simular um clique à uma URL via linha de comando, utilizamos oseguinte comando:

lynx -dump www.seudominio.com.br/meuscript.php

Com o comando em mãos podemos agendar a tarefa digitando:

crontab -e

E inserindo a linha:

0 1 * * * lynx -dump www.seudominio.com.br/meuscript.php

Que irá fazer com que o script seja executado todos os dias, às1:00 hs da manhã.

Para maiores informações sobre o uso do crontab podem ser encontradas em:

www.tldp.org/LDP/LG/issue47/misc/pollman/cron.html

Superdica: Você também pode tentar ganhar o concurso do site da Xuxaque dá prêmios à quem acessar o site o maior número de vezes com a seguinteentrada:

* * * * * lynx -dump www.planetaxuxa.com.br

Quem sabe você não ganha uma sandália melissinha ? :)

Atenciosamente,
Fábio Berbert de Paula
fabio@vivaolinux.com.br

Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada P4A - PHP For Applications
   Dica Linux recomendada PHP Debug
   Dica Linux recomendada Variáveis variáveis em PHP
   Dica Linux recomendada Documentação do CodeIgniter em português
   Dica Linux recomendada Colocando o "bcompiler" pra funcionar no PHP5

Comentários
[1] Comentário enviado por veget em 15/12/2002 - 06:13h:

Eu gostaria de saber como eu agendo uma execussão de script no CRONTAB
do servidor na internet.
por exemplo mandar um e-mail para um determinado grupo de pessoas
todo o dia 15 de todo mês as 15:00 horas.
não precisa me mostrar o script para evio de e-mail.
só queria saber como agendo isso no servidor na internet.
da para fazer por SSH?
ou eu tenho que mandar um administrador do servidor agendar no cront..
o meu servidor é o www.hostnet.com.br
obrigado pela atenção.



[2] Comentário enviado por fabio em 15/12/2002 - 12:01h:

Olá veget,

Partindo do suposto que seu script para envio de e-mail está no endereço http://www.hostnet.com.br/veget/email.php, agende a seguinte entrada no cron, de acordo com a dica acima:

$ crontab -e (abre o editor de agendamento de tarefas)

0 15 15 * * lynx -dump http://www.hostnet.com.br/veget/email.php

A entrada acima significa:

- 0, todo minuto 0
- 15, todas as 15 horas
- 15, todo dia 15 do mês
- *, todos os meses
- *, todos os dias da semana

No final, isso casa com todo dia 15 do mês às 15:00 hs. Consulte o suporte técnico do seu provedor de hospedagem para saber se eles possuem o serviço cron e o browser modo texto lynx instalados. Se for um bom provedor, mesmo que eles não tenham irão disponibilizar, ou melhor, eles podem até agendar por você. Pelo menos no provedor que trabalho nós fazemos isso pelo cliente.

[]'s,
Fábio

[3] Comentário enviado por jmoura em 09/02/2003 - 17:59h:

Para usar outro editor no crontab que não seja VI, digite na linha de comando: export EDITOR=seueditor

Ex.: export EDITOR=jed

[]'s
jmoura

[4] Comentário enviado por fabio em 24/04/2004 - 09:23h:

test

[5] Comentário enviado por fabio em 24/04/2004 - 09:23h:

test

[6] Comentário enviado por GrupoFimdeprova em 13/08/2004 - 09:03h:

Muito Bom!

[7] Comentário enviado por HackSpy em 25/01/2007 - 14:02h:

Fábio beleza,
cara gostaria de saber se tem como eu criar um arquivo e colocar estas linhas nele tipo um shell script e gravar em uma pasta dentro de meu espaço no servidor, ou um arquivo de tipo especial em uma pasta correta para ser executado de tempos em tempos ou terei de pedir este agendamento para o pessoal que detem do servidor?

[8] Comentário enviado por Mestro Limeira em 10/02/2009 - 12:12h:

Ola, quero chamar uma página externa, tentei usando essa metodo mostrado aqui mas não funcionou....... alguem poderia me ajudar ?

eu tenho um script.php em outro site, mas quero chamar ele de outro servidor... tipo

meu servidor tem a tarefa cron, no outro onde está o script não tem.... só que preciso que execute a cada 10 minutos ele

abraços

[9] Comentário enviado por nelson_info em 05/05/2010 - 00:53h:

Bom !!!
estou dormindo as 3 da manha tentando fazer um botao na minha pagina em php 5 que execute o comando no linux :

squid -k reconfigure

esteou usando centos 5.4
se alguem tiver como me ajudar, favor
fico no aguardo.


<?php

include "valida.php";
?>

<?php
$local = "/etc/squid/regras/diretoria";
if(count($_POST) > 1)
{
$arquivo = fopen("$local", "w+");
fwrite($arquivo, $_POST['arquivo']);
fclose($arquivo);
exec("sudo /usr/bin/sort $local -o $local");
exec("sudo /usr/sbin/squid -k reconfigure");
}
$arquivo = fopen("$local", "r");
?>

<?php require('cabecalho.php'); ?>

<h3>Liberar ips</h3>

<div class="text">
<p>
&Aacute;rea destinada a liberar ips ex: (10.0.0.50).<br />
Todos os ips listados aqui, poderão acessar tudo.

</p>
</div>

<form name="bloquear_ips" id="bloquear_ips" action="" method="post">
<textarea name="arquivo" id="arquivo" cols="75" rows="10"><?php
while(!(feof($arquivo)))
{
echo fgets($arquivo);
}
?></textarea>
<p><input type="submit" name="alterar" value="Alterar" id="alterar" /></p>
</form>

<?php require('rodape.php'); ?>



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.