Adicionar suporte a rc.local no ubuntu 16.04 ou superior

Embora um script muito útil para tarefas de inicialização de um servidor, essa funcionalidade se perdeu na migração de init.d para systemd.

Para poder utilizar esse arquivo novamente, vamos instalar um serviço no systemd que irá se encarregar da execução.

Primeiramente, vamos criar o rc.local e aplicar permissão de executável:

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

Após isso, vamos criar o serviço no systemd

sudo systemctl edit --full rc-local

Será necessário inserir no final do script, os parâmetros de instalação do mesmo:

[Install]
WantedBy=multi-user.target

O arquivo final vai ficar parecido com isso:

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

Depois é só rodar o comando de instalação e voilá

systemctl enable rc-local

Rastrear encomendas a aliexpress do tipo LPXXX

Essa vai pra todo viciado em compras na aliexpress.

Recentemente comprei um miiband pelo referido site, no frete estava como “aliexpress standar shipping” com tracking disponível. Porém recebi um código de rastreio com uma numeração que não me era familiar, um código de 16 dígitos que começava com a sigla LP e que não era rastreável no site dos correios.

Acompanhando o tracking direto no aliexpress, começou a acusar movimentação dentro do brasil, encaminhado de curitiba pra porto alegre, do centro de tratamento para o centro de distribuição, etc.

Isso me deixou intrigado, como o aliexpress poderia ter acesso a movimentação dentro dos correios com esse número não padrão?

O que me veio a cabeça foi uma antiga notícia, ao qual representantes do grupo alibaba teriam fechado um acordo com os correios (link), logo pensei que esse pacote deve ter ganho um número de tracking nacional ao chegar no brasil.

Pesquisando muito na internet, descobri que no site da directlink ao colocar o tracking de 16 digitos, ele exibe o número nacional nos resultados!

Resultado do tracking da directlink

A partir daí, foi só cadastrar o número brasileiro no muambator e aguardar sentado a entrega!

Criar um pendrive de instalação do windows a partir do linux

Depois que meu notebook queimou, fui obrigado a voltar a usar o desktop. máquina essa que estava dedicada pra patroa, com windows instalado e talz.

Depois de redimensionar as partições e fazer a instalação do linux, vou testar o boot no windows (afinal , não quero dormir no sofá) e me deparo com essa tela:

Com windows original, o azul é mais azul

Provavelmente o gparted destruiu o setor de boot do windows quando redimensionou a partição.

Até aí tudo bem, é fácil recuperar com um cd de instalação… porém:
– Meu drive de CD não funciona a muito tempo
– Não tenho outra máquina com windows pra gravar a iso num pendrive

Depois de uma bela fuçada na internet descobri um utilitário chamado woeusb que resolveu essa questão.

Pra instalar em sistemas derivados do ubuntu, é só adicionar esse ppa e instalar via APT

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install woeusb

Depois de instalado, só abrir o programa, escolher o pendrive e a imagem (não esqueça de formatar o pendrive em ntfs antes)

A instalação demora uns 15 minutos, tem que ser paciente! =)

Mensagem exibida ao concluir o processo:

Depois disso, foi só bootar com o pendrive e seguir com os procedimentos usuais (instalação, recuperação, etc)

 

Otimizar repositorios git

Esses dois comandinhos são usados pelo gitlab na otimização de repositórios:

git repack
git gc

De acordo com o manual:

git-repack(1)
Pack unpacked objects in a repository.

git-gc(1)
Cleanup unnecessary files and optimize the local repository.

 Em um repositorio grande fez bastante diferença

2,3G repo-arquivos # antes
1,4G repo-arquivos # depois

Matando processos zombies no linux

La estava eu, quase agendando uma manutenção em alguns servidores pra eliminar processos zumbis, daqueles que manda um kill -9 e fica preso como <defunct>

Consegui resolver isso com dois comandos, o que me garantiu que vou conseguir dormir as minhas 5 ou 6 horas de sono de todas as noites sem interrupções =P

kill -9 $(ps -A -ostat,ppid | grep -e '[zZ]'| awk '{ print $2 }') #mata todos os processos defuntos
ps aux |grep nomedoscript |awk '{print $2}' |xargs kill -9 #mata os processos que restaram

 

resolvendo mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication

Problema do dia:

Servidor mysql usado a quase 10 anos, que mesmo tendo sido atualizado a versão, os usuários legados continuam com a hash antigamente utilizada (hoje chamada de old_password)

Para estes casos, basta trocar o tipo de autenticação na session, reescrever a senha e um flush nos privilegios.

SET SESSION old_passwords=0;
UPDATE mysql.user SET Password = PASSWORD('minhasenha') WHERE User = 'meuusuario';
FLUSH PRIVILEGES;

 

Internet sem limites

internet ilimitada, internet sem franquia, provedor sem limites, internet livre

Um projeto ao qual orgulhosamente faço parte visa criar uma lista colaborativa de pequenos provedores que não vão aderir a bizarra prática de impor limites de franquia na banda larga fixa.

http://internetsemlimites.github.io/

O código-fonte do site, cms e api de utilização estão disponíveis gratuitamente no github.

https://github.com/InternetSemLimites

Trocando o editor padrão do ubuntu

Não adianta, eu não consigo me acostumar a usar o nano, o vim até pode ser mais complexo no início mas é um verdadeiro canivete suiço.

Quando instalei o ubuntu (eu vivo trocando de distro :P) e fui executar um pull em um repositório git, me aparece aquele editor horrível.

Pra resolver isso, basta utilizar o alternatives pra trocar o editor.

O comando é:

sudo update-alternatives --config editor

ao digitar  a senha do usuário, basta escolher o editor pelo número e apertar enter =)

[email protected]:~/Projetos/Repositorios/classes$ sudo update-alternatives --config editor
[sudo] senha para braz: ******

Existem 4 escolhas para a alternativa editor (disponibiliza /usr/bin/editor).

  Selecção   Caminho             Prioridade Estado
------------------------------------------------------------
* 0            /bin/nano            40        modo automático
  1            /bin/ed             -100       modo manual
  2            /bin/nano            40        modo manual
  3            /usr/bin/vim.basic   30        modo manual
  4            /usr/bin/vim.tiny    10        modo manual

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: a usar /usr/bin/vim.basic para disponibilizar /usr/bin/editor (editor) em modo manual