quarta-feira, 16 de abril de 2014

Centos 6 x64 + php 5.3 + bcompiler Com exemplo de arquivo php

, , , 0




Buenas,

Vamos botar para quebrar com o Centos minimal 6 atualizado com o php 5.3 (http://www.php.net/manual/pt_BR/book.bcompiler.php) e também vamos compilar o módulo bcompiler (http://pecl.php.net/package/bcompiler) para criar arquivos binários do php.

Instalação

Entrar no diretório
# cd /usr/src/

Baixar o pacote mais atual
# wget http://pecl.php.net/get/bcompiler

Descompactar o arquivo
# tar -xvsf bcompiler

# cd bcompiler-1.0.2/

PHPIZE Prepara o ambiente para a compilação (http://php.net/manual/pt_BR/install.pecl.phpize.php)
# phpize

Procedimentos comuns para a compilação
# ./configure
# make

A propria extensão manda fazer um teste antes de compilar verdadeiramente
# make test
# make install

Feito isso e não teve nenhum erro show de bola terminamos a compilação e a instalação.

Ao terminar a compilação ele retorna a mensagem de concluído, e também o diretório onde foi gravado o arquivo no meu caso "/usr/lib64/php/modules/"

Vamos agora para a ativação da extensão no php.

# cd /etc/php.d/

# vim bcompiler.ini

Cole o seguinte conteudo

; Ativando a extensao do bcompiler
extension=bcompiler.so


Reiniciando o serviço httpd.

# service httpd restart


Exemplos

No meu caso vou estar utilizando os arquivos compilados pelo php para a linha de comando (http://php.net/manual/pt_BR/features.commandline.php), para obter mais desempenho.



<?php

// $fh é o arquivo de destino, onde vai ser gravado a compialação
// repare na extensao do arquivo não é mais php e sim phb
$fh = fopen("arq_src.phb", "w");
bcompiler_write_header($fh);
// $fh é o arquivo de origem onde tem o codigo php cru
bcompiler_write_file($fh, "arq_src.php");
bcompiler_write_footer($fh);
fclose($fh);

?>




sexta-feira, 11 de abril de 2014

Criando Fluxo em ASCII

, , , 0




Buenas,

Ta aqui uma baita ferramente que fazia falta, criar fluxo em modo texto para usar nos script.

http://asciiflow.com/

A ferramente é baseada na web e é muito fácil de usar, com isso monta-se os fluxos e depois cola no script indicando o que ele deve fazer.

Forte Abraços
Marcos Carraro

sexta-feira, 4 de abril de 2014

Linux Erro Disco - DRDY ERR UNC e ou {DRDY err}

, , 0




Buenas,

Situação, um servidor com 6 discos de 1,5tb, do nada da um crash (Os discos estão em RAID para ter mais desempenho).

Ao ligar, imagina o retorno....
  {DRDY err} do sata1....

Um simples fsck não tava resolvendo meu problema, até que veio os velhos tempos do slackware, o dino deixou algumas coisas legais...

Então, nada melhor que rodar o e2fsck

# e2fsck -f -c -v -y /dev/md0

No meu caso o /dev/md0 é o raid, mas pode usar o seu disco /dev/sda1....

Após 19Horas, o servidor voltou a vida a todo vapor.

Boa Sorte se não precisarem ocupar o comando, se tiverem que utilizar tomara que de retorno.

Forte quebra costelas,
Marcos Carraro.

quinta-feira, 3 de abril de 2014

NMAP vs CONFICKER

, , , 0




É velho, mas ainda existe, e por causa dele, fiquei numa blacklist.

Solução.

#sudo nmap -sC --script=smb-check-vulns --script-args=safe=1 -p445  -d -PN -n -T4  --min-hostgroup 256 --min-parallelism 64  -oA conficker_scan 192.168.1.0-254 > conficker

Na máquina atualizar o XP para o SP3, aplicar os FIX, e também http://brazil.kaspersky.com/recursos/combater-conficker 

O legal do NMAP é que o retorno dele é fácil detectar alguma máquina infectada.

Nmap scan report for 192.168.1.110
Host is up, received arp-response (0.0097s latency).
Scanned at 2014-04-03 16:32:49 BRT for 2s
PORT    STATE SERVICE      REASON
445/tcp open  microsoft-ds syn-ack
MAC Address: 00:1D:1A:03:6E:F8 (OvisLink S.A.)

Host script results:
| smb-check-vulns:
|   MS08-067: CHECK DISABLED (remove 'safe=1' argument to run)
|   Conficker: Likely INFECTED (by Conficker.C or lower)
|   regsvc DoS: CHECK DISABLED (add '--script-args=unsafe=1' to run)
|   SMBv2 DoS (CVE-2009-3103): CHECK DISABLED (add '--script-args=unsafe=1' to run)
|   MS06-025: CHECK DISABLED (remove 'safe=1' argument to run)
|_  MS07-029: CHECK DISABLED (remove 'safe=1' argument to run)
Final times for host: srtt: 9730 rttvar: 15146  to: 100000


Marcos Carraro

Mysql Usando CASE com WHERE com Coluna Virtual - ATUALIZADO

, , , , , 0




Buenas,

Muitas vezes precisamos montar uma coluna virtual no mysql somente para aquela consulta, onde devemos aplicar um filtro, sem ter que ir para a programação apenas no banco para termos um desempenho melhor.

A situação.

Tabela Dias

Colunas
ID DIA HORA

Precisamos comparar alguns valores se estiverem OK retornar 1 caso contrário retornar 0

select
    ID,
   @DiaValido := (CASE WHEN (DAYOFWEEK(NOW()) = '7' && a.dia = '7')&&(DAYOFWEEK(NOW()) = '7' && b.dia = '1' ) THEN '1'
WHEN (DAYOFWEEK(NOW()) >= a.dia) && (DAYOFWEEK(NOW()) <= b.dia) then '1'
ELSE '0' END) as DiaValido
from
    Dias a,
   Dias b,
where @DiaValido = 1

Desta maneira conseguimos obter melhor desempenho, pois não vamos precisar programar, apenas fazendo a consulta no banco, ganhando assim mais performance.

Atualizando 03/04/2014 - 1058 .
A consulta anterior estava levando 2.15ms para retornar banco pequeno, máquina pequena.

Ao invés de criar uma Coluna Virtual (nome verdadeiro Variável), utilizei o parâmetro HAVING, com isso ganhei 0,20 ms de tempo, pensando em um banco maior, com mais registros....

select
    ID,
(CASE WHEN (DAYOFWEEK(NOW()) = '7' && a.dia = '7')&&(DAYOFWEEK(NOW()) = '7' && b.dia = '1' ) THEN '1'
WHEN (DAYOFWEEK(NOW()) >= a.dia) && (DAYOFWEEK(NOW()) <= b.dia) then '1'
ELSE '0' END) as DiaValido
from
    Dias a,
   Dias b,
HAVING DiaValido = 1

Forte quebra costelas
Marcos Carraro

terça-feira, 1 de abril de 2014

Site com os principais sites de AD Server (popups de propaganda chatos)

0




Buenas,

Segue link com uns 300 registros para bloquear no proxy assim melhorando as malditas propagandas.

http://pgl.yoyo.org/adservers/serverlist.php

Abraços
Marcos Carraro.

segunda-feira, 31 de março de 2014

Xenserver + Storage + Linux + Aumentar espaço partição

, , , , , , , , , 0




Buenas,

Mais um daqueles dias, meu BI acusando falta de espaço ok, então lá vamos nos aumentar. Por sorte eu já tenho experiencia com o linux e espaço em disco, então sempre faço LVM ou duas partições.

Neste caso montei duas partições, pelo motivo dele ser um Banco, e quase todas as documentações falam que LVM é menos performático do que uma partição normal.

Primeiro de tudo, fiz um BKP do postgre, como a instalação do DB esta separada vide link ( http://marcoscarraro.blogspot.com.br/2013/04/instalando-postgresql-92-alterar-local.html ), foi mais fácil.

Feito o BKP é hora de baixar a VM, e no xenserver desconectar o DISCO, para uma maior segurança, selecione o disco, e clique em "Detach".


Feito, isso conecte no HP CMC, gerenciador do Storage, então vamos fazer o resize do disco.

Aumente o tamanho necessário, clique em OK e espere.

Após aumentar o espaço em disco, no xenserver aumente o tamanho do disco, clicando em propriedades, conforme exemplo.


Clique em OK, e pronto, reatach com a máquine, e mande iniciar a VM. Ao iniciar a VM, na linha de comando digitar '# df -h' vai ver que nada mudou para isso, '# fdisk -l', vai perceber que o disco já pegou o tamanho novo.

No linux.

Obs: xvda é o meu disco, o seu pode ser diferente

# umount /dev/xvda3

É necessário desmontar a partição para poder prosseguir.

# fdisk /dev/xvda
p -> mostra todos discos, vamos deletar a partição 3 que é a que vai ser aumentada
d -> comando para apagar
    3 -> numero da partição
w -> grava alterações

# reboot

Ao iniciar a máquina devemos dar o formato à  partição.

# make -t xfs -i size=1024 /dev/xvda3

Aguarde alguns instantes....

# mount -a

# df -h

Vai mostrar o tamanho novo da partição, pronto, so restaurar o bkp, iniciar o DB e aproveitar.

Abraços
Marcos Carraro.