Sem categoria

Inserindo metadados de latitude e longitude em imagem no Linux

Para quem não habilitou a função de localização no dispositivo móvel e a foto foi registrada sem a posição de latitude e longitude é possível inserir manualmente com o comando exiftool.

Para instalar em Debian e derivados é só rodar um apt

apt install exiftool

E para inserir os metadados basta rodar o comando:

exiftool -XMP:GPSLatitude="31.6348373" -XMP:GPSLongitude="-8.1479418" -P "marrocos-01.jpg"

Será gerado uma cópia do arquivo e mantendo o original.

Para verificar se os metadados realmente foram inseridos é só rodar o comando:

exiftool -gpslatitude -gpslongitude marrocos-01.jpg

ou com o ImageMagick:

identify -verbose marrocos-01.jpg | grep GPS

Caso você não tenha a latitude/longitude, uma sugestão é usar o Nominatim, um geocoder para OpenStreetMap.

Padrão
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