Arquivo

Textos com Etiquetas ‘Linux’

Como saber o modelo do processador no linux

19, março, 2010

Olá Senhores, demostro aqui um comando para mostrar informações a respeito do processador:

# cat /proc/cpuinfo

Quando dou este comando aparece o modelo do processador, tamanho de cache, fabricante ( entre outras coisas ) e o mesmo apresenta a seguinte saída:

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 8
model name      : AMD Athlon(TM) XP 2200+
stepping        : 1
cpu MHz         : 1353.063
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up ts
bogomips        : 2708.53
clflush size    : 32

Anderson Dicas, Linux

Enviando emails agendados com Crontab

4, dezembro, 2009

Há tempo venho prucurando soluções rápidas e ágeis para o envio de emails automaticamente por email.
A solução que eu vou apresentar aqui, é uma das mais fáceis, é ESTRUTURADA e funciona (BEM e sem erros).

A primeira coisa, criar uma base de dados qualquer (ou usar a que você já tem) e a tabela. No meu caso vou usar uma base já existente, e uma tabela chamada aniversariantes.

A estrutura da tabela aniversariantes:

1
2
3
4
5
6
7
CREATE TABLE `aniversariantes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL DEFAULT '',
`email` varchar(255) NOT NULL DEFAULT '',
`data` date NOT NULL DEFAULT '0000-00-00',
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

Insira alguns registros nesta tabela, para que possamos trabalhar com os mesmos.

Agora vamos criar um script PHP que fará a tarefa de selecionar o aniversariante pela data de aniversário e enviar o email.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?
// dados comuns de conexão
$host = "localhost";
$usuario = "meuusuario";
$senha = "senha";
$base = "teste";
$tabela = "aniversariantes";
 
//Pegamos então q data atual do sistema e quebramos o dia e mes separando-os
//através do explode na variável $date.
$date = date("Y-m-d");
list($anoatual, $mesatual, $diaatual) = explode("-", $date);
 
// efetuando a conexão
$con = mysql_connect($host, $usuario, $senha);
mysql_select_db($base);
 
//Selecionamos todos os usuários do banco que atendam o critério de busca
$aniversario = mysql_query("SELECT * FROM $tabela WHERE dataniver &gt; $date")
or die("Não conectou: " . mysql_error());
 
//Efetuamos um loop com as seguintes condições: se o mês atual for igual ao
//mês atual do aniversário do usuário (gravado no campo dataniver da tabela) e
//se o dia atual for igual ao dia do aniversário do usuário (gravado no mesmo 
//campo) envia o email de aniversário.
while ($row = mysql_fetch_array($aniversario)) {
  list($ano, $mes, $dia) = explode("-", $row[3]);
  if ($mesatual == $mes) {
    if ($diaatual == $dia) {
      mail ($row['email'],"Feliz aniversário","Parabéns pelo seu dia!");
    }
  }
}
 
?>

Então temos um script básico que faz o que tem que fazer. Mas e rodá-lo todos os dias?

Aí é que entra o famoso CRON ou crontab para os mais íntimos (e familiarizados com ambientes IX). Nele podemos agendar uma tarefa para ser executada de tempos em tempos.

Tendo posse do terminal da máquina (ou utilize o Cpanel da sua hospedagem, seguindo as instruções) digite:

# crontab -e

E adicione as seguintes linhas no arquivo:

* * * * * php /var/www/homedosite/enviaemailaniversarios.php

O que significa a linha acima? Significa que todos os dias, de todos os meses e de todos os anos * * * * o crontab irá rodar o script php presente na pasta mencionada por você. Note que ali deve sempre ser informado o caminho abosluto do arquivo php.

Agora, para que o Cron saiba que o que você está executando é um arquivo PHP e deve ser interpretado como tal, adicione a seguinte linha ao seu arquivo enviaemailaniversarios.php antes de abrir qualquer tag PHP, ou seja, na primeiríssima linha:

#!/usr/local/bin/php -q

Isso vai informar ao Cron, que para rodar este arquivo agendado, deve ser utilizado o binário do PHP, ou seja, “o exe” do PHP, para que a aplicação seja interpretada corretamente.

Não podemos esquecer de dar permissão de execução para o arquivo enviaemailaniversarios.php:

# chmod 777 </span><span>enviaemailaniversarios.php

Pronto, já está tudo funcionando.

Abraços!

Fonte

Update:
Descobri que em algumas contas do cpanel, o cron não funcionava corretamente, então achei a seguinte solução:
Deve-se adicionar o parâmetro -q na linha de comando do cron como segue:

* * * * * php -q /home/homedosite/public_html/enviaemailaniversarios.php

e a linha

#!/usr/local/bin/php -q

não é mais necessária no arquivo php.

Anderson Dicas, Linux, Programação ,