<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Pedro Filho</title>
<subtitle></subtitle>
<link href="https://www.pedrofilho.com.brfeed.php" rel="self" />
<id>https://www.pedrofilho.com.brfeed.php</id>
<updated>2005-03-07T09:53:58+00:00</updated>
<entry>
<title type="html">calculo do modulo 10 em shellscript</title>
<content type="html">&lt;pre&gt;&lt;code data-language=&quot;shell&quot;&gt;function modulo10()
{
cont_char=$(echo -n &quot;$1&quot; | wc -c)
cont_multiplicador=1

while [ $cont_char -ne 0 ]; do
char=$(echo $1 | cut -c $cont_char)
if [ $(($cont_multiplicador % 2)) == 1 ]; then
char_produto=$((char * 2))
else
char_produto=$((char * 1))
fi

if [ $char_produto -ge 10 ]; then
produto=$(($produto + $(echo $char_produto | cut -c 1) + $(echo $char_produto | cut -c 2)))
else
produto=$(($produto + $char_produto))
fi
cont_char=$(($cont_char - 1))
cont_multiplicador=$(($cont_multiplicador + 1))
done
if [ $(($produto % 10)) -eq 0 ]; then
echo &quot;0&quot;
else
echo $((10 - $(($produto % 10))))
fi
}&lt;/code&gt;&lt;/pre&gt;</content>
<link href="https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=8" />
<id>https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=8</id>
<updated>2005-03-07T09:53:58+00:00</updated>
<category term="GNU/Linux"/>
</entry>
<entry>
<title type="html">Niveis de execução de sistemas linux</title>
<content type="html">&lt;p&gt;O linux é capaz de operar em vários estados diferentes de sistema, cada um dos quais definido pelo conjunto de serviços disponibilizados ao usuário quando o respectivo estado está no controle do sistema. Oito desses niveis de execução estão disponiveis, embora tipicamente, apenas sete sejam de interesse do usuário. Por exemplo, os niveis de execução relevantes estão listados abaixo:&lt;/p&gt;
&lt;p&gt;0 – Halt&lt;br /&gt;1 – Modo monousuário&lt;br /&gt;2 – Vazio (pode ser definido pelo usuário)&lt;br /&gt;3 – Modo multiusuário sem janelas&lt;br /&gt;4 – Vazio (pode ser definido pelo usuário)&lt;br /&gt;5 – Modo multiusuário completo (com janelas)&lt;br /&gt;6 – Reboot&lt;/p&gt;
&lt;p&gt;- O nivel de execução default do sistema é configurado no arquivo /etc/inittab.&lt;br /&gt;- O nivel de execução default do CentOS é o 3.&lt;br /&gt;- Os niveis de execução 2 e 4 são usados, tipicamente, para configurações customizadas, as quais envolvem serviços que não são necessários nos niveis de execução 3 e 5 padrão.&lt;br /&gt;- As designações de nivel de execução do CentOS ficam armazenadas em /etc/rc.d/ e cada nivel de execução possui sua própria pasta, e é numerada de acordo. Por exemplo, a pasta do nivel de execução 3 chama-se rc3.d.&lt;br /&gt;- Se os serviços serão iniciados ou terminados, e em que ordem, dentro de cada nivel de execução, isso é determinado examinado os três primeiros caracteres de cada link simbolico começa com um S, este serviço será iniciado neste nivel de execução. Se começar com um K, ele será terminado. O inteiro de dois digitos que se segue ao primeiro caractere determina a ordem na qual este serviço será iniciado ou terminado. Quanto maior o numero, mais tarde seu destino será tratado.&lt;/p&gt;</content>
<link href="https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=7" />
<id>https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=7</id>
<updated>2005-03-07T09:50:21+00:00</updated>
<category term="GNU/Linux"/>
</entry>
<entry>
<title type="html">configurar load balance PCC no MikroTik</title>
<content type="html">&lt;p&gt;ESTRUTURA:&lt;/p&gt;
&lt;p&gt;LAN: 10.0.0.0/27&lt;br /&gt;ISP1: 192.168.0.0/27&lt;br /&gt;ISP2: 192.168.3.0/24&lt;/p&gt;
&lt;p&gt;ENDERECOS:&lt;/p&gt;
&lt;p&gt;/ip address&lt;br /&gt;add address=10.0.0.1/27 broadcast=10.0.0.31 comment=”&quot; disabled=no interface=LAN network=10.0.0.0&lt;/p&gt;
&lt;p&gt;add address=192.168.0.10/27 broadcast=192.168.0.31 comment=”&quot; disabled=no interface=ISP1 network=192.168.0.0&lt;/p&gt;
&lt;p&gt;add address=192.168.3.1/24 broadcast=192.168.3.255 comment=”&quot; disabled=no interface=ISP2 network=192.168.3.0&lt;/p&gt;
&lt;p&gt;ROTAS:&lt;/p&gt;
&lt;p&gt;/ip route&lt;br /&gt;add check-gateway=ping comment=”Rota Saida GVT para Load Balance” disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.3.20 routing-mark=ISP2_traffic scope=30 target-scope=10&lt;/p&gt;
&lt;p&gt;add check-gateway=ping comment=”Rota saida Velox para Load Balance” disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=ISP1_traffic scope=30 target-scope=10&lt;/p&gt;
&lt;p&gt;add check-gateway=ping comment=”Rota saida Velox/GVT sem Load Balance” disabled=no distance=2 dst-address=0.0.0.0/0 gateway=192.168.0.1,192.168.3.20 scope=30 target-scope=10&lt;/p&gt;
&lt;p&gt;NAT:&lt;/p&gt;
&lt;p&gt;/ip firewall nat&lt;br /&gt;add action=masquerade chain=srcnat comment=”&quot; disabled=no out-interface=ISP1&lt;/p&gt;
&lt;p&gt;add action=masquerade chain=srcnat comment=”&quot; disabled=no out-interface=ISP2&lt;/p&gt;
&lt;p&gt;MANGLE:&lt;/p&gt;
&lt;p&gt;/ip firewall mangle&lt;br /&gt;add action=mark-connection chain=input comment=”Marca Conexoes de entrada para que voltem pelo mesmo link” disabled=no in-interface=ISP1 new-connection-mark=ISP1_conn passthrough=yes&lt;/p&gt;
&lt;p&gt;add action=mark-connection chain=input comment=”&quot; disabled=no in-interface=ISP2 new-connection-mark=ISP2_conn passthrough=yes&lt;/p&gt;
&lt;p&gt;add action=mark-connection chain=output comment=”Inicia o balance” connection-state=new disabled=no dst-address=!10.0.0.0/27 new-connection-mark=ISP1_conn passthrough=yes per-connection-classifier=both-addresses:2/0&lt;/p&gt;
&lt;p&gt;add action=mark-connection chain=output comment=”&quot; connection-state=new disabled=no dst-address=!10.0.0.0/27 new-connection-mark=ISP2_conn passthrough=yes per-connection-classifier=both-addresses:2/1&lt;/p&gt;
&lt;p&gt;add action=mark-routing chain=output comment=”Retorna as conexoes marcadas no inicio, pelo mesmo link que entraram” connection-mark=ISP1_conn disabled=no new-routing-mark=ISP1_traffic passthrough=yes&lt;/p&gt;
&lt;p&gt;add action=mark-routing chain=output comment=”&quot; connection-mark=ISP2_conn disabled=no new-routing-mark=ISP2_traffic passthrough=yes&lt;/p&gt;
&lt;p&gt;add action=mark-connection chain=prerouting comment=”Load Balance (PCC)” disabled=no dst-address-type=!local in-interface=LAN new-connection-mark=ISP1_conn passthrough=yes per-connection-classifier=both-addresses:2/0&lt;/p&gt;
&lt;p&gt;add action=mark-connection chain=prerouting comment=”&quot; disabled=no dst-address-type=!local in-interface=LAN new-connection-mark=ISP2_conn passthrough=yes per-connection-classifier=both-addresses:2/1&lt;/p&gt;
&lt;p&gt;add action=mark-routing chain=prerouting comment=”Conexoes do load balance para as novas tabelas do PCC” connection-mark=ISP1_conn disabled=no in-interface=LAN new-routing-mark=ISP1_traffic passthrough=yes&lt;/p&gt;
&lt;p&gt;add action=mark-routing chain=prerouting comment=”&quot; connection-mark=ISP2_conn disabled=no in-interface=LAN new-routing-mark=ISP2_traffic passthrough=yes&lt;/p&gt;</content>
<link href="https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=6" />
<id>https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=6</id>
<updated>2005-03-07T09:49:18+00:00</updated>
<category term="MikroTik"/>
</entry>
<entry>
<title type="html">transformar link padrão UUID em dispositivo no wheezy</title>
<content type="html">&lt;p&gt;Passei por um problema aqui com o novo Debian com comando df e outros que identificam o sistema de arquivos com um link simbólico&lt;br /&gt;tipo UUID como /dev/disk/by-uuid/132a49f9-790a-49fb-3112-383e93187bf8 e isso é muito chato: a saída do comando é mais amplo e ilegível, difícil de decorar e o dispositivo atual não é mais identificado em alguns scripts.&lt;/p&gt;
&lt;p&gt;a solução que encontrei foi criar o script abaixo e colocar ele em /etc/initramfs-tools/scripts/local-premount/rootdevice com o conteúdo:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre&gt;&lt;code data-language=&quot;shell&quot;&gt;#!/bin/sh
# transformar o link padrao do
# (UUID) no dispositivo normal.
set -e
[ &quot;$1&quot; = prereqs ] &amp;amp;&amp;amp; exit 0
REALROOT=`readlink -f ${ROOT}`
[ &quot;${REALROOT}&quot; ] &amp;amp;&amp;amp; echo &quot;ROOT=${REALROOT}&quot; &amp;gt;&amp;gt; /conf/param.conf
exit 0&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;colocar ele como executável:&lt;br /&gt;chmod +x /etc/initramfs-tools/scripts/local-premount/rootdevice&lt;/p&gt;
&lt;p&gt;e depois atualizar o initramfs:&lt;br /&gt;update-initramfs -u&lt;/p&gt;
&lt;p&gt;pronto tudo fica como era antes ;)…&lt;/p&gt;</content>
<link href="https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=5" />
<id>https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=5</id>
<updated>2005-03-07T09:48:42+00:00</updated>
<category term="GNU/Linux"/>
</entry>
<entry>
<title type="html">HASH com senha – HMAC</title>
<content type="html">&lt;p&gt;Dias atrais precisei criar um algoritmo para verificar se um form realmente esta vindo de uma pagina especifica, usando MD5 para isso como hoje existem alguns sites com dicionarios inteiros de hash que facilita a vida dos malas, pensei em concatenar a string com outra que seria secreta para ficar diferente.&lt;/p&gt;
&lt;p&gt;Mais para minha surpresa pesquisei no site do php sobre as funções de hash nativas e encontrei um recurso bem interessante chamado HMAC ( Hash-based Message Authentication Code ) que permite você adicionar um código de autenticação ao hash final.&lt;/p&gt;
&lt;p&gt;Como ele é bem simples, irei colocar abaixo um codigo em php e mais abaixo a saida do codigo:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre&gt;&lt;code data-language=&quot;php&quot;&gt;&amp;lt;?php

// varios  - md5, sha1, crc32 e ripemd160 com e sem senha em hmac

echo &quot;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Algoritmo MD5&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&quot;;

echo hash(&#039;md5&#039;,&#039;pedro&#039;,&#039;&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo hash_hmac(&#039;md5&#039;,&#039;pedro&#039;,&#039;senha&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo &quot;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Algoritmo SHA1&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&quot;;

echo hash(&#039;sha1&#039;,&#039;pedro&#039;,&#039;&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo hash_hmac(&#039;sha1&#039;,&#039;pedro&#039;,&#039;senha&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo &quot;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Algoritmo crc32&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&quot;;

echo hash(&#039;crc32&#039;,&#039;pedro&#039;,&#039;&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo hash_hmac(&#039;crc32&#039;,&#039;pedro&#039;,&#039;senha&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo &quot;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Algoritmo ripemd160&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&quot;;

echo hash(&#039;ripemd160&#039;,&#039;pedro&#039;,&#039;&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo hash_hmac(&#039;ripemd160&#039;,&#039;pedro&#039;,&#039;senha&#039;);

echo &quot;&amp;lt;br&amp;gt;&quot;;

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;saida do codigo acima:&lt;/p&gt;
&lt;p&gt;Algoritmo MD5&lt;br /&gt;c6cc8094c2dc07b700ffcc36d64e2138&lt;br /&gt;a1d018ffaf490f6a5b92742ef3ccd173&lt;br /&gt;Algoritmo SHA1&lt;/p&gt;
&lt;p&gt;4410d99cefe57ec2c2cdbd3f1d5cf862bb4fb6f8&lt;br /&gt;5c82ffca9902349d22bf36ab133b40cbb2f2ea76&lt;br /&gt;Algoritmo crc32&lt;/p&gt;
&lt;p&gt;e86f00aa&lt;br /&gt;0f6fd579&lt;br /&gt;Algoritmo ripemd160&lt;/p&gt;
&lt;p&gt;7755874530352e4d9fce481fbf92ac0e46581b16&lt;br /&gt;a2a25fa6891b36bbd4761cf84ad01a7a0ceee458&lt;/p&gt;</content>
<link href="https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=4" />
<id>https://www.pedrofilho.com.brindex.php?controller=post&amp;amp;action=view&amp;amp;id_post=4</id>
<updated>2005-03-07T09:47:23+00:00</updated>
<category term="Programação"/>
</entry>
</feed>