Traça de biblioteca
Carrego com imenso carinho dentro de mim lembranças de diferentes bibliotecas que fizeram parte de minha vida. A história das bibliotecas, pra mim, começa na escola, onde professoras de português já me incentivavam em tenra idade. Tive o privilégio de estudar em escolas com ótimas bibliotecas e receber este estimulo já nos bancos escolares.
Mas tenho em meu irmão um dos meus maiores incentivadores. Sendo eu a “raspa do tacho”, meu irmão exercia sobre mim um papel de irmão/pai/amigo. Ainda que eu não tivesse a completa noção de como isto era importante na época. E foi através do incentivo do meu irmão que fiz minha inscrição na Biblioteca Pública de meu município.
Read more »
Conversão de máquinas Windows em VMs
Sou usuário de Linux a muitos anos e nunca tive maiores dificuldades com migração de máquinas. Sempre tive uma certa tranquilidade em retirar um HD de uma máquina e colocar em outra. Alguns ajustes sempre se fazem necessário, mas nunca deixei de conseguir carregar o sistema operacional.
A exceção foi um servidor de um cliente, cujos administradores otimizaram o kernel, deixando somente os drivers necessários da controladora.
Infelizmente o Windows não oferece esta facilidade. Retirar um HD em uma máquina e conseguir ligar em outra não parece ser algo esperado. Não sei se é uma tentativa de proteção do fornecedor ou se é uma limitação do conceito. Pelo que li, um dos problemas é que o instalador só instala os drivers da controladora identificada (parecido com o caso do kernel otimizado que citei!).
Read more »Conversão de LOB em base64
Tem sido raro nos dias de hoje, mas as vezes deparamo-nos com problemas que os indexadores de busca não conseguem nos apontar a solução.
Ainda que, como na vida, o segredo de achar as respostas desejadas é saber fazer as perguntas certas!
Mas nesta semana caí em uma destas situações. Um cliente precisou mudar o protocolo de envio de e-mails. O seu provedor de serviço modificou o tradicional SMTP para um serviço de API via HTTP. O fato de utilizar o protocolo HTTP, exigiu que arquivos anexados aos e-mails precisassem ser convertidos para Base64.
Como eu sempre disse aos meus alunos, tudo em computação tem limites. Usando PL/SQL para escrever o código de envio, temos o limite das variáveis VARCHAR2 na casa dos 32k.
Alguém envia anexos só com 32k?
A solução para isto é usar campos BLOB/CLOB e fazer conversões em etapas. Não vou entrar neste mérito, pois existem diferentes documentações para isto na internet. E baseada nestas documentações foram implementados os códigos para a mudança de protocolo necessária.
Read more »Equivalência ao grep em Windows
Para quem é usuário de *nix, comandos como grep
(entre outros) sempre fazem falta no mundo Windows.
Sei que existem versões dos mesmos para Windows e até o projeto do Cygwin [1]. Mas não é em todo o ambiente que acesso que tenho poderes administrativo, ou mesmo, quero adicionar tais ferramentas. Assim, prefiro ficar com o ferramental que o próprio ambiente me oferece.
Com o Power Shell [2], os administradores tiveram sua vida bastante melhorada, sem dúvidas!
Apesar disso, a simplicidade (e costume!) dos comandos do mundo *nix sempre me fazem recorrer à Internet em busca da sintaxe do equivalente ao grep no mundo Windows. Por isto, resolvi deixar aqui uma postagem para eu recorrer sempre que precisar. De maneira simples, a sintaxe é a seguinte:
Select-String -Path *.txt -Pattern texto-a-procurar
Talvez eu crie alguns .bat (ou similares) para fazer a equivalência… Ou será que já existe um projeto assim?
Referências:
[1] Cygwin
Windows Server bloqueando domínio WPAD
Hoje precisei ajustar as configurações de DNS de um Windows Server 2016 para adicionar entradas WPAD e resolver problemas em estações que não configuravam corretamente o proxy.
Não entrarei em detalhes sobre o funcionamento do WPAD. Uma rápida descrição pode ser encontrada neste link sobre WPAD.
Para minha surpresa, mesmo depois de corretamente configuradas as entradas de DNS, as estações não conseguiam resolver o nome de domínio.
Encontrei a solução aqui [1]. Em resumo, servidores Windows bloqueiam entradas de DNS! Para descobrir as entradas de DNS bloqueadas:
dnscmd /info /globalqueryblocklist
Para desabilitar bloqueio:
dnscmd /config /enableglobalqueryblocklist 0
Obrigado Luis Fernandes!
Referências:
[1] How to configure WPAD through DNS – https://support.gfi.com/hc/en-us/articles/360012983853-How-to-configure-WPAD-through-DNS
Usando YUM após fim do ciclo de atualizações do sistema operacional
Hoje eu estava fazendo a instalação de um servidor CentOS 5 e precisei adicionar alguns novos pacotes à instalação realizada. Então me deparei com erros do tipo:
YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/
O ciclo de vida de atualizações do produto chegou ao fim, impedindo novas atualizações (o que pra mim não era problema!) e instalações de novos pacotes (este sim era problema!).
Talvez você se pergunte: Mas por que ainda usar uma versão tão antiga? Por que não atualizar para uma versão recente? Respondo: as vezes, por questões de compatibilidade e homologação de softwares, preciso manter versões antigas de linux!
Pesquisando um pouco descobri que a própria distribuição mantém uma base de repositórios antigos na estrutura do YUM, o que eu não sabia!
Talvez a maneira mais elegante ou indicada seria adicionar um apontamento para a versão 5.11 no arquivo /etc/yum.repos.d/CentOS-Vault.repo e fazer referência à este repositório na chamada do YUM. Mas isto tornaria a chamada do YUM menos prática! Então optei por realizar os passos indicados no fórum do CentOS, neste tópico [1]. Abaixo faço um resumo dos tópicos para futuras consultas.
- editar o arquivo /etc/yum.repos.d/CentOS-Base.repo
- em [base]
- comentar “mirrorlist=…”
- “baseurl=” já estava comentada pra mim
- adicionar nova entrada “baseurl=http://vault.centos.org/5.11/os/$basearch/”
- em [updates]
- adicionar “enabled=0”
- em [extras]
- igual a passos 1 e 2 de [base]
- adicionar nova entrada “baseurl=http://vault.centos.org/5.11/extras/$basearch/”
- em [base]
Com estas modificações, pude fazer uso do YUM sem maiores dificuldades!
Referências:
[1] yum fails – https://www.centos.org/forums/viewtopic.php?t=62106
[CC] Testando proxy em linha de comando
Faço muito atendimento remoto, via linha de comando.
Uma das maravilhas do Linux, pois não preciso de uma interface gráfica para resolver a maior parte dos meus problemas!
As vezes são necessárias mudanças no servidor proxy e nem sempre conseguimos testar no mesmo servidor e verificar o problema que está ocorrendo (por exemplo, quando o DNS não atende corretamente e o proxy está funcionando 100%!)
Para resolver esta questão, basta usar a variável de ambiente e o lynx! Veja:
$ env http_proxy=http://IP_DO_PROXY:PORTA_PROXY lynx ENDEREÇO_A_SER_TESTADO
Espero que tenha ajudado os fãs de linha de comando, assim como eu!
Monitorando CIFS com Zabbix
Tenho usado o Zabbix como ferramenta de monitoramento a bastante tempo. Além da excelência da própria ferramenta, o que sempre me surpreende positivamente é o suporte da comunidade e a diversidade de soluções encontradas. Não foi diferente desta vez!
Precisei fazer o monitoramento de pontos de montagem CIFS de um cliente (na real achei que eram NFS!). Comecei a pesquisar por soluções que detectasse os pontos de montagem para que eu não precisasse adicioná-los.
Neste artigo [1] do blog Infradev – DevOps & Monitoring encontrei uma excelente solução para o meu problema, no entanto, era para NFS (usarei para necessidades futuras!). Com algumas pequenas adaptações, trouxe a solução para a minha necessidade (CIFS).
A seguir descrevo as modificações, bem como o template que eu criei, baseado na solução original [1].
[CC] Habilitando impressoras CUPS via linha de comando
Quando adicionamos um impressora em rede (em geral ligado numa estação de trabalho) no CUPS, é comum que a impressora fique desabilitada, por falta de comunicação, por exemplo.
Para que ela volte a funcionar, é necessário habilitá-la. Para isto, em geral, se faz via uma interface (seja o administrativo do próprio CUPS via interface web, ou seja em uma interface gráfica instalada em sua distribuição Linux.
Agora quando o serviço do CUPS está instalado em um servidor sem interface gráfica, servindo à um sistema local e você tem apenas acesso remoto, via SSH, como fazer?
Tradicionalmente o comando seria este (vem desde o tempo dos “Unix’s”):
$ enable nome-da-impressora
No entanto, no sistema que eu estava administrando (e acredito que seja verdade para um grande número de Linux atualmente), o comando “enable” faz parte do shell [1], assim, não funciona para o propósito que eu precisava (o de habilitar a impressora!).
Pesquisando um pouco [2], descobri que existe uma alternativa do CUPS, que coloco abaixo:
$ cupsenable nome-da-impressora
Simples e direto assim! Espero que seja útil a mais alguém!
Referências:
[CC] Validador PAC
Durante algum tempo procurei um validador de arquivos de proxy (proxy.pac ou wpad.dat).
Não tinha encontrado nada até a data de hoje (se existiam, eu não soube procurar!).
Obrigado Jan Henning Thorsen por compartilhar conosco este função muito útil!
Segue o endereço do PAC file tester: https://app.thorsen.pm/proxyforurl