Sem categoria

Transforme linha separada por vírgulas em 1 coluna

Apareceu uma demanda de validar e-mail para uma campanha, mas estava todos numa mesma linha e separada por vírgula e nesse padrão não seria possível avançar na validação. Seguem abaixo três formas para transformar linha separada por vírgulas em 1 coluna.

Na linha de comando com SED

sed -i 's/,/\n/g' seu-arquivo.txt

Na linha de comando com TR

tr ',' '\n' < seu-arquivo.txt > seu-novo-arquivo.txt 

Ou pelo site https://convert.town/comma-separated-list-to-column

Referências: Turn comma-separate rows into 1 column

Padrão
Sem categoria

Exim – routing defer (-51): retry time not reached

Por um problema nas entregas de mensagens, encontrei o erro routing defer (-51): retry time not reached no log do Exim, isso num servidor com WHM/Cpanel.

E o espaço em disco estava ficando menor muito rápido, ao ponto de ocupar todo o disco e travar todos os serviços.

A solução que encontrei foi limpar todas as mensagem não enviadas com o comando

exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

E depois apagar o arquivo eximstats_db.sqlite3

rm /var/cpanel/eximstats_db.sqlite3 -fr
/scripts/restartsrv_tailwatchd
/scripts/import_exim_data /var/log/exim_mainlog

Referências: The system cannot open the database eximstats_db.sqlite3

Padrão
Sem categoria

Como adicionar tempo de leitura no WordPress sem usar o plugin

Num projeto recente previa a implementação de uma funcionalidade que calculasse o tempo de leitura no artigos, tem bons plugins como Reading Time WP e outros, mas optei por uma solução sem necessidade de plugin.

Pegue esse código e insira em functions.php do seu tema

Para aparecer no seu template é só inserir o código

<?php echo reading_time(); >

Artigo baseado em How to Add Reading time in WordPress without using plugin

Padrão
Sem categoria

Bloqueando Drupalgeddon2 com Fail2ban

Recentemente tive que limpar alguns sites com Drupal 7 que foram alvos da vulnerabilidade CVE-2018-7600 / SA-CORE-2018-002, conhecido como Drupalgeddon2.

Mesmo que tenha que limpado os efeitos colaterais e atualizado o core resolvi implementar uma regra no Fail2ban para que aqueles ataques que tentassem explorar a vulnerabilidade à partir de um método conhecido não pudesse explorar outra forma.

Testei um exploit em Ruby e outro em Python que exploram a vulnerabilidade e usei dois trechos para o Fail2ban identificar e bloquear a ação.

Acrescentei em /etc/fail2ban/jail.local

[drupalgeddon2]
enabled = true
filter = drupalgeddon2
port = http,https
action = iptables-multiport[name=drupalgeddon2, port=”http,https”, protocol=tcp]
# logpath = /var/log/apache2/*.log
logpath = /var/log/nginx/*.log
bantime = 84600
maxretry = 1

e em /etc/fail2ban/filter.d/drupalgeddon2.conf 

[Definition]
failregex = ^ .* “.*passthru&name.*” .*$
^.*GET.*(?i)passthru&name.*
ignoreregex =

Padrão
Sem categoria

Problema criação de thumb no Mediawiki

Ainda esses dias tive problema no Mediawiki para ele criar miniaturas e uma parte das questões resolveu instalando o imagemagick.

E embora ele tenha gerado as miniaturas, após instalar o imagemagick, não aparecia nas páginas, somente o nome do arquivo.

Fiz alguns testes para gerar e redimensionar imagens à partir do módulos imagemagick no php e estava funcionando. Outros CMSs estavam funcionando corretamente a integração.

Fazendo pesquisas por blogs e fórum achei a solução do problema: manter o $wgShellLocale com C.UTF-8. Eu havia alterado para pt_BR.utf8 e isso causou o problema.

Padrão
Sem categoria

Formatando pendrive em Linux

Ao gravar a imagem iso no KDE Neon no meu pendrive, via Etcher, ele altera em muito o sistema de arquivos, ao contrário do Unetbootin que manten o sistema de arquivos atualmente.

O padrão dos pendrives é FAT32, sistema de arquivos do Windows. Quis alterar o sistema de arquivos para esse padrão e não deu certo no Windows 10.

No KDE Neon o utilitário padrão para gerenciamento de partições é o Partition Manager e foi com ele que fui criar a partição nova com mais espaço, pois já havia duas, uma para boot com menos de 3MB de espaço e outra com o restante do espaço. Esse com o boot abriu no Windows 10, mas o outro não.

Então usei o cfdisk para reforçar a terceira partição que crie como FAT32 e não deu certo. Verifiquei que a partição que abriu no Windows 10 usava uma identificação do sistema de arquivos ef e então alterei o sistema de arquivo para esse padrão e deu certo.

Padrão
Sem categoria

Testando cliente para TIDAL no Linux

Segui nos teste com o TIDAL e tem sido satisfatório usar tanto por LineageOS como pelo Firefox com Flash.

Instalei o KODI num ambiente virtualizado e rolou legal com TIDAL. Tive que instalar um add-ons indo em Music > Add-ons > Get more… selecione TIDAL e cliquei em Install e pronto! Depois foi necessário autenticar no TIDAL. No caso de montar um media center realmente é uma boa solução.

Tentei compilar o Tomahawk com suporte ao TIDAL, mas não deu certo. Não temos mais tanta paciência para contornar problemas de compilação.

Vi que tem outras duas soluções para rodar o TIDAL em Linux, uma em modo texto, o tidal-cli-client, e o wrapper tidal-music-linux, ambos em NPM com diferentes complementos. Também não tive sucesso em ambos.

Por hora deu de testes, vou seguir com a solução via browser e mais para frente KODI pro media center.

Padrão
Sem categoria

Instalando LineageOS num Nexus 5 com Magic Device Tool

Comprei um Nexus 5 usado para estudar diferentes Sistemas Operacionais, pois só conheço o Android classicão.

Pesquisando pela web descobri o Magic Device Tool, um script em bash que ajuda na instalação de sistemas alternativos ao Android e também funciona para recuperação do sistema padrão do smartphone. Minha intenção era instalar o LineageOS.

Existem vários posts falando sobre o Magic Device Tool e do LineageOs e não quero falar mais do mesmo, quero falar dos problemas que tive para instalar o LineageOS e como resolvi.

Primeiro baixei o programa e rodei o executável:

git clone https://github.com/MariusQuabeck/magic-device-tool.git
 cd magic-device-tool
 ./launcher.sh

O programa verifica se as dependências estão instaladas e caso não estejam ele mesmo resolve, adicionando repositório e instalando os pacotes. Uma vez tudo instalado ele vai para a tela de diálogo para escolher o dispositivo e Sistema Operacional.

O programa usa um conjunto de aplicações para executar todos os procedimentos, mas em resumo ele usa o ADB para fazer a comunicação entre computador e smartphone e o TWRP para executar comandos no smartphone.

A versão atual do Magic Device Tool busca uma versão antiga do LineageOS e do opengapps, que estão com URL quebradas. O pior é que ele baixa os pacotes depois que já formatou o smartphone, deveria baixar antes e se tudo der certo ele executa os demais comandos. Precisei baixar manualmente as versões mais recentes do TWRP, LineageOS e opengapps, criar o diretório ~/.cache/magic-device-tool e renomeei os arquivos baixados para o mesmo nome que o script utilizada e ficou assim os comandos:

mkdir ~/.cache/magic-device-tool/
wget https://dl.twrp.me/hammerhead/twrp-3.2.1-1-hammerhead.img
wget https://github.com/opengapps/arm/releases/download/20180414/open_gapps-arm-7.1-nano-20180414.zip
wget https://mirror.math.princeton.edu/pub/lineageos/full/hammerhead/20180410/lineage-14.1-20180410-nightly-hammerhead-signed.zip
cp twrp-3.2.1-1-hammerhead.img ~/.cache/magic-device-tool/twrp-hammerhead.img
cp open_gapps-arm-7.1-nano-20180414.zip ~/.cache/magic-device-tool/open_gapps-arm-7.1-nano-20170603.zip
cp lineage-14.1-20180410-nightly-hammerhead-signed.zip ~/.cache/magic-device-tool/lineage-14.1-20170829-nightly-hammerhead-signed.zip

Dessa forma o programa fez a instalação corretamente.

 

Padrão