Como substituir o comando ifconfig pelo ip

Usuários tradicionais do Linux podem ter se acostumado a usar o comando ifconfig para solucionar, diagnosticar problemas ou fazer ajustes relacionados à interface de rede no seu sistema.
A ferramenta faz parte do pacote net-tools (no Debian) e vem sendo descontinuada há algum tempo — ou, pelo menos, não vinha recebendo mais atualizações.

ethernet cable
Ethernet.

Clique nos links dentro do texto e no final, para obter mais informações.
Alguns usuários ficaram surpresos com o “sumiço” da ferramenta, nas versões mais atuais de seus sistemas operacionais favoritos.
Entretanto, quem fizer questão, pode facilmente instalar o ifconfig, da seguinte forma:


sudo apt install net-tools

Por curiosidade, a opção ‘show’ mostra que o ifconfig (em destaque) ainda consta entre os pacotes do net-tools:


apt show net-tools

Package: net-tools
Version: 1.60+git20161116.90da8a0-1
Priority: optional
Section: net
Maintainer: net-tools Team 
Installed-Size: 963 kB
Depends: libc6 (>= 2.14), libselinux1 (>= 1.32)
Conflicts: ja-trans (<= 0.8-2)
Replaces: ja-trans (<= 0.8-2), netbase (<< 4.00)
Homepage: http://sourceforge.net/projects/net-tools/
Tag: admin::configuring, implemented-in::c, interface::commandline,
 network::configuration, network::routing, network::vpn, protocol::ipv6,
 role::program, scope::utility, use::routing
Download-Size: 248 kB
APT-Sources: http://ftp.br.debian.org/debian stretch/main amd64 Packages
Description: conjunto de ferramentas para rede NET-3
 Este pacote inclui as importantes ferramentas para controlar o sub-sistema
 de rede do kernel do Linux. Ele inclui: arp, ifconfig, netstat, rarp,
 nameif e route. Adicionalmente, este pacote contém utilitários relacionados
 a tipos particulares de hardware de rede (plipconfig, slattach, mii-tool) e
 aspectos avançados de configuração IP (iptunnel, ipmaddr).
 .
 No pacote original (do autor), 'hostname' e outros estão incluídos.
 Esses não são instalados por este pacote, visto que existe um pacote
 especial "hostname*.deb".

Se você usar o comando apt changelog sobre o pacote ‘net-tools’, vai ver que a última atualização (patch) do ifconfig ocorreu em 2011.
Muitas águas rolaram por baixo desta ponte.
O ip é a ferramenta de configuração da rede, que vem ganhando força.
Se estiver disposta(o) a seguir em frente e experimentar o novo, me acompanhe.

Saiba mais sobre o comando ip, para configuração de redes no Linux

É importante enfatizar que o ip não é, simplesmente, uma substituição do ifconfig.
São usados para propósitos similares, mas são diferentes entre si, em suas estruturas.
Veja o que dá para fazer com o ip:

  • Descobrir quais interfaces estão configuradas no sistema.
  • Inquirir sobre o estado de uma interface de rede.
  • Configurar as interfaces de rede — o que inclui o loop-back local e a Ethernet.
  • Ativar ou desativar uma interface.
  • Gerenciar o roteamento estático e padrão.
  • Configurar o tunelamento sobre o IP.

No próximo tópico, veremos alguns exemplos aonde o ip pode ser usado como substituto do ifconfig, para exibir o estado das interfaces de rede.
Lembre-se que a ferramenta requer privilégios administrativos, de forma que você vai ter que usar ou o su ou o sudo, para executar o comando.
Não esqueça de adequar os exemplos deste texto, à realidade da sua rede, aí.

Como obter informações da rede

Sempre usei muito o ifconfig para obter dados sobre as interfaces de rede presentes em meu hardware.
Isto pode ser feito apenas invocando o comando, sem dar qualquer parâmetro, argumento ou opção.
Esta tarefa pode ser executada com o comando ip da seguinte forma:


ip a

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0:  mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 50:b7:c3:04:da:48 brd ff:ff:ff:ff:ff:ff
3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 brd 192.168.100.255 scope global dynamic wlp1s0
       valid_lft 6263sec preferred_lft 6263sec
    inet6 fe80::8274:c9b8:688a:300a/64 scope link 
       valid_lft forever preferred_lft forever

Você sempre pode acrescentar as opções ‘-color’ (ou apenas ‘-c’) e ‘-human’ (‘-h’), para obter a saída, com destaques importantes colorizados e em formato um pouco mais legível (por humanos). Veja um exemplo:


ip -c -h a

terminal resultado do comando ip
Use a opção ‘-4’, para exibir informações sobre a rede IPv4:


ip -4 a 

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.100.3/24 brd 192.168.100.255 scope global dynamic wlp1s0
       valid_lft 5136sec preferred_lft 5136sec

Ou ‘-6’, para as informações de rede IPv6:


ip -6 a

1: lo:  mtu 65536 state UNKNOWN qlen 1
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: wlp1s0:  mtu 1500 state UP qlen 1000
    inet6 fe80::8274:c9b8:688a:300a/64 scope link 
       valid_lft forever preferred_lft forever

Quer restringir as informações a apenas uma das suas interfaces? Use o ‘show’ acompanhado do nome da interface de rede:


ip a show wlp1s0

3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 brd 192.168.100.255 scope global dynamic wlp1s0
       valid_lft 4818sec preferred_lft 4818sec
    inet6 fe80::8274:c9b8:688a:300a/64 scope link 
       valid_lft forever preferred_lft forever

Combine parâmetros e, sinta-se à vontade para incluir o comando grep, para filtrar melhor as informações exibidas:

ip -4 -c -h a show wlp1s0 | grep --color state

3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000

Para ver apenas as interfaces de rede ativas, use o comando da seguinte forma:


ip -c link ls up

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0:  mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 50:b7:c3:04:da:48 brd ff:ff:ff:ff:ff:ff
3: wlp1s0:  mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff

Como deixar sempre colorida a saída do comando ip

Note que gosto de acrescentar a opção ‘-c’, para colorizar a saída do comando — o que torna mais fácil a sua leitura.
Isto é opcional, claro.
Você pode incluir esta e outras opções automaticamente a cada nova entrada do comando, usando o alias:


alias ip='ip -c'

Se quiser torná-lo permanente, inclua esta linha ao final do arquivo .bashrc (do superusuário).

Referências

https://www.linux.com/learn/replacing-ifconfig-ip.

https://linuxconfig.org/how-to-install-missing-ifconfig-command-on-debian-linux.

Como instalar a interface de linha de comando do WordPress

Alguns usuários podem ter utilidade para uma interface de linha de comando, para realizar atividades administrativas relacionadas ao WordPress.
Para estes, existe o wp-cli — WordPress Command Line Interface, ou “interface de linha de comando do WordPress”.

Sua instalação é simples e leva menos de 30 segundos (verdade!).
Veja quais são os prerequisitos para baixar, instalar e usar o wp-cli:

  1. Ambiente UNIX-like, o que inclui o OSX, sua distro Linux favorita, FreeBSD e Cygwin (para usuários Windows). No ambiente Windows, há suporte limitado do aplicativo, mas é possível usá-lo.
  2. PHP — a versão 5.3.29 é requerida, mas as atuais distribuições GNU/Linux já estão usando versões superiores à 7.0.
  3. WordPress 3.7 ou superior.

Por fim, use o comando wget (ou o curl) para fazer o download do wp-cli.phar:


wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Se preferir usar o curl, faça assim:


curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Verifique se aplicativo já está funcionando adequadamente:


php wp-cli.phar --info

PHP binary: /usr/bin/php7.0
PHP version:    7.0.19-1
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:    phar://wp-cli.phar
WP-CLI vendor dir:  phar://wp-cli.phar/vendor
WP_CLI phar path:   /home/apps
WP-CLI packages dir:    
WP-CLI global config:   
WP-CLI project config:  
WP-CLI version: 1.3.0

Para tornar o uso do aplicativo mais simplificado, vamos torná-lo executável:


chmod +x wp-cli.phar 

… e movê-lo para um diretório mais apropriado.


sudo mv wp-cli.phar /usr/local/bin/wp

Agora já será possível executá-lo, sem digitar “PHP” no começo:


wp --info

PHP binary: /usr/bin/php7.0
PHP version:    7.0.19-1
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:    phar://wp-cli.phar
WP-CLI vendor dir:  phar://wp-cli.phar/vendor
WP_CLI phar path:   /home/apps
WP-CLI packages dir:    
WP-CLI global config:   
WP-CLI project config:  
WP-CLI version: 1.3.0

Se preferir, na hora de baixar o programa, é possível optar pela versão nightly (a versão dos desenvolvedores). Ela tem os recursos mais atuais, porém é menos testada do que a versão estável.


wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli-nightly.phar

Feito o download, basta repetir os procedimentos acima — tendo o cuidado de trocar o nome da versão estável pelo da nightly.


Sempre que quiser atualizar o wp-cli, use a opção ‘update’:


sudo wp cli update
[sudo] senha para justincase: 
Success: WP-CLI is at the latest version.

Se quiser passar a usar a versão nightly, é possível fazer a troca também através do ‘update’. Veja:


sudo wp cli update --nightly

Como configuração adicional, torne o aplicativo amigável ao recurso de autocompletar:


wget https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash

Use o source, para incluir o recurso no BASH, inclua a seguinte linha no seu .bashrc:


source /caminho/para/wp-completion.bash 

… ou seja, se este arquivo estiver no seu diretório home, use “source ~/wp-completion.bash” (sem as aspas).
Para que a alteração tenha efeito imediato, rode o comando:


source ~/.bash_profile

Agora, é só usar!

Assine este site

Todo dia eu aprendo alguma coisa nova sobre administração de servidores, WordPress, bancos de dados, Android etc.
Desde o começo, este site existe para compartilhar o que sei com outras pessoas.
Se quiser ser avisado(a) quando houver post novo no blog, inscreva-se abaixo!

Referências

https://make.wordpress.org/cli/handbook/installing/.
Leia mais sobre WordPress, neste site.

Como criar rapidamente uma nova partição emergencial para SWAP.

Criar e começar a usar uma nova partição ou arquivo de SWAP pode ser feito muito rapidamente no Linux.
O procedimento é seguro e pode ser realizado em menos de 2 minutos.
Contudo, aconselho a ir com calma.
redimensionar reparticionar disco
Outro conselho útil para estas ocasiões é aproveitar para fazer um backup.
O contexto deste post é um notebook que me chegou às mãos e, após abrir dezenas e dezenas de novas abas e janelas no Firefox, a máquina começou a ficar insuportavelmente lenta.
Nenhum vídeo era reproduzido (nem no Facebook, nem no YouTube)
Chegou ao ponto em que eu tinha que ver o que estava acontecendo:


free -h

                    total        used            free      shared  buff/cache   available
Mem:           7,5G        6,0G        557M        565M        3,0G        700M
Swap:            0B          0B          0B

Observe o meu resultado, acima.
Há 557 Mb de memória RAM livres — ou seja, estamos chegando a um limite… e absolutamente nenhum SWAP (nem arquivo, nem partição) presente.
Não há muita esperança de que o SWAP possa desafogar o uso do navegador Firefox, nestas circunstâncias, mas outros programas, em uso no sistema, bem que poderiam se beneficiar do seu uso e ajudar a “desespremer” a memória RAM — o que seria benéfico, por extensão, para o navegador.

A máquina estava ligada há uns 5 dias e o reboot não costuma ser minha primeira uma opção.

Criar um arquivo para o SWAP é completamente indolor e rápido, no Linux.
O que inviabiliza esta solução é que o sistema de arquivos, aqui, é 100% BTRFS.
Não é possível criar um arquivo de troca em cima do BTRFS.


Havendo espaço e sem reiniciar o computador, seria possível redimensionar uma das partições, para criar uma exclusiva para SWAP, como reza a tradição?
Esta foi a minha aposta. Veja o resultado…

Nunca é demais avisar que o procedimento pode danificar seu sistema de arquivos e causar perda irreversível de dados.
— Portanto, verifique se seu backup está em dia, antes de prosseguir.

Instale o gparted:


sudo apt install gparted

Em seguida, rode o programa e selecione a partição que deseja redimensionar.
Se tiver dúvidas quanto ao tamanho mais adequado, o artigo Perguntas e respostas sobre SWAP tem uma tabela que simplifica o assunto.
Siga o procedimento abaixo:

  1. Clique com o botão direito do mouse/touchpad sobre a partição cujo tamanho deseja alterar e selecione “Redimensionar”.
    gparted redimensionar partição
  2. Agora, indique o tamanho da nova partição em “Espaço livre após (MB)”.
    gparted redimensionar
    Em seguida, marque a opção “formatar para Linux swap”.
    gparted redimensionar partição
  3. Aplique as alterações feitas.
  4. Clique com o botão direito sobre a nova partição SWAP e selecione “Ativar o swap”.
    gparted ativar swap

Com isto, o problema estará resolvido.
Rode novamente o free, no terminal, para ver que o SWAP já está lá, pronto para ser usado.


free -h

              total        used        free      shared  buff/cache   available
Mem:           7,5G        2,5G        270M        589M        4,8G        4,2G
Swap:          8,8G          0B        8,8G

Como resultado (pra mim), o Firefox voltou a ganhar agilidade, sem precisar ser fechado ou reiniciado — e os vídeos voltaram a ser reproduzidos dos sites.
Novamente, vale a advertência: não aconselho realizar este procedimento em máquinas de produção, sem fazer um backup antes.
Há risco de perda de dados.
No meu caso, tratava-se de uma máquina de testes e, portanto, fazia sentido prosseguir nesta aventura.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Instalação de multifuncional HP via USB no Linux

As impressoras e multifuncionais, bem como os digitalizadores de mesa da marca HP, há um bom tempo são (em geral) amigáveis com o sistema operacional Linux.
De tal forma que você provavelmente vai conseguir usar o seu equipamento logo depois de desembalá-lo.
Para contextualizar este post, fiz uso de uma multifuncional HP DeskJet Ink Advantage 3635, conectada a um notebook rodando Debian 9 Stretch.

Você tem outro modelo de impressora ou multifuncional? Usa outra distro Linux?
Conte para a gente como foi a sua experiência nos comentários.

Multifuncional HP DeskJet Ink Advantage 3635
Multifuncional HP DeskJet Ink Advantage 3635

Não esqueça de seguir as seguintes recomendações gerais da HP, antes ligar a impressora:

  • Se você acabou de tirar a impressora de dentro da caixa, deve desembalar e instalar os cartuchos com ela ainda desligada.
  • Depois de instalar os cartuchos conecte-a via USB ao seu PC de mesa ou notebook, ligue o cabo de força e toque no botão Power da impressora.

Segue o procedimento para instalar e imprimir sua primeira página de testes:

  1. No computador, pressione a tecla Super, para abrir o Dash e comece a digitar “impressora”. Selecione o item “Configurações de impressoras”.
  2. Ao abrir, o painel já deve estar mostrando o ícone referente ao equipamento. E, sim, já está pronta para uso.
  3. Clique no ícone para ver as configurações específicas.
  4. Agora clique sobre o botão “Imprimir página de teste”.

página de testes debian de impressão
Instalar impressoras no Linux, em muitos casos, é simples assim. 😉

Experimente o Debian com o kernel do FreeBSD.

O Debian é uma comunidade aberta a diversos projetos interessantes.
Há, pelo menos, 2 projetos que oferecem o sistema operacional combinado a um kernel alternativo.
Já falei sobre o Debian rodando com o kernel GNU/Hurd, antes.
Desta vez, vou mostrar como baixar uma versão que roda sobre o kernel do FreeBSD.
A melhor maneira de testá-la é rodar uma das imagens prontas para o QEMU/KVM.

O sistema não é pesado e dá para você se divertir e ter uma idéia do seu funcionamento.

Neste post, vou analisar uma destas 3 opções:

  1. debian_squeeze_kfreebsd-amd64_standard.qcow2
    — uma opção mais antiga, sem o ambiente gráfico (imagem c/204 Mb).
  2. debian_wheezy_kfreebsd-amd64_desktop.qcow2
    — uma opção mais atual (Debian 7), com o ambiente gráfico (imagem c/1,7 Gb).
  3. debian_wheezy_kfreebsd-amd64_standard.qcow2
    — Debian 7, sem o ambiente gráfico (imagem c/210 Mb).

As imagens estão comprimidas e se expandem até 25 GiB, na medida do necessário.
Os exemplos, que seguem, são baseados na 3a opção.
Se preferir outra, basta adaptá-los ao seu caso.
Use o comando wget para fazer o download ou baixe direto do site (links no final):


wget https://people.debian.org/~aurel32/qemu/kfreebsd-amd64/debian_wheezy_kfreebsd-amd64_standard.qcow2

Feito o download, rode o sistema a partir do QEMU:


qemu-system-x86_64 -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2

Bem simples, não é?
Para poder usar melhor o sistema, use as seguintes informações:

  • A conta root usa a senha “root” (sem as aspas).
  • A conta user usa a senha “user”.

Para obter um melhor desempenho, ative o KVM:


qemu-system-x86_64 -enable-kvm -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2

Para suprimir o modo gráfico, coloque o display no modo curses:


qemu-system-x86_64 -enable-kvm -display curses -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2

Neste caso, pode ser necessário aumentar um pouco (ou maximizar) a janela do seu terminal, para conseguir ver toda a área de trabalho.
Como padrão, a imagem roda com 128 MiB de memória RAM.
Use a opção ‘-m’ do QEMU para ampliar este valor:


qemu-system-x86_64 -m 512 -enable-kvm -display curses -hda debian_wheezy_kfreebsd-amd64_desktop.qcow2


Se você optou por uma das imagens com ambiente gráfico, acima, vai precisar usar uma quantidade maior de memória RAM, claro.
Neste caso, as imagens usam lightDM com o XFCE e 1GiB de memória RAM deve ser mais do que o suficiente.
Se quiser trocar este ambiente, pelo original do Debian (GDM e GNOME), dê os seguintes comandos, dentro da máquina virtual (como superusuário):


update-alternatives --auto x-session-manager

echo /usr/sbin/gdm3 > /etc/X11/default-display-manager

Vale a pena instalar e usar o Debian com o kernel FreeBSD?

Diferente do Hurd, o kernel do FreeBSD é um kernel maduro e bem testado.
Aqui é possível usar todo o ambiente gráfico e usufruir do universo dos repositórios de softwares do Debian.
No lado do servidor, a opção é uma alternativa para quem deseja ficar longe do systemd e/ou evitar as eventuais vulnerabilidades do kernel Linux.
Há, ainda, o glamour de estar mais próximo de executar um kernel semelhante ao usado pela Apple em seus dispositivos.
Do ponto de vista de quem vem do FreeBSD, esta opção “mantém um pé” lá e outro nos vastos repositórios de softwares Debian.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

De onde baixei a versão analisada neste texto: https://people.debian.org/~aurel32/qemu/kfreebsd-amd64/.
Outras versões do Debian kfreebsd: http://jenkins.kfreebsd.eu/jenkins/view/cd/job/debian-cd_jessie-kfreebsd_kfreebsd-amd64/ws/build/.
Debian Mini .ISO (para instalar): http://cdn-fastly.deb.debian.org/debian/dists/jessie-kfreebsd-proposed-updates/main/installer-kfreebsd-amd64/current/images/netboot-10/.
Conheça o Debian GNU/Hurd: https://elias.praciano.com/2017/07/experimente-o-debian-com-o-kernel-gnuhurd-em-uma-maquina-virtual/.