Ao instalar o Debian na configuração de rede ao escolhermos a configuração padrão, o sistema configura a rede convencionalmente, isto é, obtendo um endereço de IP dinâmico via DHCP. Agora vamos configurar o Debian para usar um IP estático para que o sistema seja configurado como servidor.
Para conferir as definições atuais, digite no terminal as instruções ip -4 address. Serão retornadas informações das interfaces do computador que têm o próprio endereço de IP, dinâmico ou estático. Provavelmente, está aparecendo na sua tela a interface lo (Loopback) e uma outra, chamada eth0.
A interface Loopback é uma rede virtual que promove a interação entre cliente e servidor em um mesmo host. Já a eth0 corresponde à placa de rede Ethernet, então o seu endereço de IP dinâmico que passará a ser estático — no exemplo, aplicamos o endereço 192.168.100.1.
Como fazê-lo? Primeiramente, temos de acessar o arquivo.
/etc/network/interfaces
No endereço /etc/network/interfaces estão guardadas as configurações de cada interface de rede. Você pode acessá-lo a partir do editor de texto de sua preferência. Exemplo: #nano /etc/network/interfaces
Ao abrir o arquivo no Debian, temos as seguintes informações:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# allow-hotplug eth0
# iface eth0 inet dhcp
A linha em destaque é o que define o padrão de IP. Note que o termo “dhcp” está presente, indicando que o servidor DHCP é que está fornecendo o IP. Sendo assim, vamos adicionar uma linha em branco e, em seguida, inserir as seguintes informações:
# Static IP address
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
O que fizemos acima? Primeiramente, criamos uma nova configuração para que o servidor comece a responder pelo IP 192.168.1.100. Em seguida, declaramos a máscara de rede (sempre que um dispositivo se comunicar com a rede, será por meio do IP informado), os IPs reservados para a rede em si, além do broadcast e do gateway.
Mais o processo não acaba por aqui. A próxima etapa é modificar as informações registradas no arquivo /etc/resolv.conf.
O arquivo /etc/resolv.conf é usado no Debian (e outras distribuições do Linux) para configuração do servidor DNS (Domain Name System, ou Sistema de Nome de Domínio).
Aqui o procedimento é bem simples, vamos apenas inserir o endereço de IP do gateway. Digite nano /etc/resolv.conf e insira as linhas:
domain localdomain
search localdomain
nameserver 192.168.1.1
Agora, vamos reiniciar a interface de rede para implantar a configuração:
# ifdown eth0
# ifup eth0
Finalizando o processo, verifique os parâmetros usando o comando ifconfig. As informações devem estar de acordo com o modelo a seguir:
root@server:~# ifconfig
eth0 Link encap:Ethernet HWaddr 09:01:30:84:4d:bb
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::aaa:28ff:fe84:4cb3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5657 (5.5 KiB) TX bytes:9091 (8.8 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Se as informações batem, isso indica que a sua rede com IP estático está funcionando e já pode se conectar a outras interfaces. Para testar a conectividade com os servidores da web, só fazer o ping em algum domínio. Exemplo: www.cger.com.br
Por Luciano Ribeiro.
Você deseja instalar algum programa no GitHub, por exemplo, mas o arquivo não é distribuído em formatos mais convencionais, como .deb e .rpm, e sim em tar.gz, e é a sua única opção. O que fazer?
Vamos deixar de encarar o tar.gz como problema, pois aprenderemos a instalar pacotes em qualquer distribuição baseada em Linux.
Como você já deve ter notado, existe uma série de variantes do tar, como tar.xz e tar.bz2. Não explicaremos a diferença entre elas aqui, porém, quanto da instalação e de outros procedimentos próprios das variantes, digite o comando man tar no seu terminal.
Extração de tar.gz
Voltando ao “suposto” programa que você baixou do GitHub, chamado software.ver_7.0.tar.gz, e que se encontra no diretório Downloads.
Abra o terminal e acesse o diretório em questão e descompacte o arquivo tar.gz usando o comando tar com a flag -zxvf. Só elucidando:
z = filtra o arquivo por meio do gzip;
x = extrai itens do arquivo;
v = verbose;
f = cria arquivo com o nome especificado.
Exemplo de uso do comando:
cd Downloads
tar -zxvf software.ver_7.0.tar.gz
Agora há uma pasta no diretório Downloads com o mesmo nome do arquivo tar.gz, correto? Você pode movê-la usando o comando sudo mv software.ver_7.0/ /opt/ (recomenda-se o diretório opt porque ele é acessível a todos os usuários) ou continuar a partir do diretório atual, mesmo.
Explorando o novo diretório, busque por um arquivo que cujo nome é INSTALL, INSTALL.txt ou README (ou algo similar). No terminal, basta usar o comando ls e uma lista de objetos será exibida. Supondo-se que encontre o arquivo INSTALL, abra-o com o xdg-open:
xdg-open INSTALL
O arquivo em si tem as instruções para prosseguir com o processo de instalação, que normalmente são três:
./configure
make
sudo make install
Quando há dependências necessárias, a primeira etapa, configure, retorna uma lista com as dependências que estão faltando. No caso, temos como alternativa substituir “make install” por “checkinstall”.
Como em qualquer outros procedimento de instalação, o processo acima é suscetível a falhas e elas são bem comuns. Por isso, a leitura do arquivo INSTALL (ou README) é importante, pois é bem provável que alguma instrução alternativa a ser usada mediante falhas.
Não encontrou nenhuma solução no arquivo? Verificou todas as dependências e o problema persiste? É possível que se trate de um erro comum e já solucionado na comunidade, então a sugestão é pesquisar em fóruns (procure não se limitar às páginas em português); só copiar o erro no Google.
Boa sorte.
Fonte: https://e-tinet.com/linux/instalar-tar-gz-linux/
Texto adaptado por: Luciano Ribeiro.
O gerenciamento de processos no Linux se assemelha à administração de usuários quanto à importância dessas atividades para o profissional de redes. Um sysadmin, por exemplo, precisa compreender uma série de aspectos em um processo, tais como o seu:
consumo de recursos computacionais;
tipo de processo;
identificação de cada processo, e muito mais.
Sabendo essas informações, é possível controlar o uso da CPU (memória RAM e banda larga, principalmente), mantendo em execução somente o que é necessário. O mesmo se aplica, também, às boas práticas de uso doméstico.
Agora que já temos uma noção da importância em gerenciar processos, vamos prosseguir com o artigo, explorando mais detidamente as classificações de processos e os comandos que temos à disposição para coordená-los usando o Linux.
Um processo comum é um programa que roda no sistema operacional, seja automaticamente, seja por iniciativa do usuário. A sua vida útil se resume em inicialização, execução e encerramento.
Cada processo pode variar de status entre running, sleeping e zombie, o que numa tradução livre e adaptativa significam “em execução”, “hibernando” e “ociosos” (aguardando a requisição de outro programa).
Ao entrar em cena, o processo criado gera uma cópia de si na memória RAM, porém com uma identificação (ID) diferente — técnica conhecida como fork.
A criação de processos também costuma ser feita substituindo-se a imagem de um processo por uma outra diferente, sem manter a relação entre processos parent e child.
Parent e child? O que são essas coisas? Nada mais do que um dos meios utilizados pelo sistema para identificar processos. Um processo parent é aquele que cria outros processos durante o tempo de execução, ou seja, processos filhos (child processes).
Em meio aos parentescos existe, também, o processo mãe (mother), que é o processo de inicialização (init process), executado no boot do Linux — pelo systemd, por exemplo.
Quando se utiliza o comando pidof para consultar ID de processos, um mother process sempre será identificado como número 1.
No mais, é importante que essas categorias não representam os tipos de processos, propriamente, como veremos no próximo tópico.
O objetivo deste conteúdo é apresentar os comandos mais importantes para gerenciar processos no Linux. Contudo, antes de nos aprofundarmos nessa parte, é necessário definir os tipos de processos. Basicamente, eles se definem em foreground e background.
Um foreground process se caracteriza como interativo, cuja inicialização e controle são feitos pelo próprio usuário, manualmente. Em contrapartida temos o background, que diz respeito a processos não interativos, normalmente inicializados de forma automática pelo sistema (sem controle do usuário).
Dentro do conceito de background processes existem os daemons. Esses processos, identificados como system tasks, são carregados juntos do sistema operacional e são tratados como serviços em outros sistemas operacionais, como o Windows.
Eles não morrem, porém tais processos podem ser controlados pelo usuário de várias maneiras a partir de comandos no terminal. Quer saber quais são esses comandos? Vamos prosseguir com o assunto daqui em diante.
Existem diversas maneiras de gerenciar processos no Linux usando os comandos. Abaixo, relacionei oito comandos que, desde que dominados, permitem ao usuário (ou administrador do sistema) controlar quase tudo que acontece no sistema operacional. Vamos a eles!
1. ps
Você se lembra de que cada processo carrega consigo um número de identificação, certo? Trata-se do PID. Estou retomando essa questão porque o PID é fundamental para administrarmos processos que se encontram em execução, o que é a função do comando ps.
O comando ps é um dos mais utilizados entre os usuários, pois ele consegue listar de maneira simples e de fácil compreensão todos os processos que estão rodando no sistema operacional. Ao acionar o comando sem acrescentar nenhuma opção, você receberá um retorno parecido com este:
#profissionaislinux@etinet:~$ ps
PID TTY TIME CMD
17399 pts/3 00:00:00 bash
17492 pts/3 00:00:00 ps
Obviamente, os processos listados acima não são os únicos em execução no momento; para saber quais são todos os processos ativos no terminal, utilizam-se as opções -e (every / todos) e f (full listing / lista completa). Exemplo:
profissionaislinux@etinet:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 nov14 ? 00:00:06 /sbin/init splash
root 2 0 0 nov14 ? 00:00:00 [kthreadd]
root 4 2 0 nov14 ? 00:00:00 [kworker/0:0H]
root 6 2 0 nov14 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 nov14 ? 00:00:00 [ksoftirqd/0]
root 8 2 0 nov14 ? 00:00:25 [rcu_sched]
…
Apareceu uma lista imensa, não é mesmo? Você pode consultar os processos em busca do nome ou PID e, então, escolher uma ação para ele.
2. pstree
A lista apresentada pelo comando ps -ef não é das mais intuitivas para você? Não se preocupe, há um jeito de melhorar isso. Nós temos à disposição uma variante do comando ps chamada pstree. Como o próprio nome sugere, o pstree apresenta um diagrama de árvore.
Por que isso é interessante? O diagrama de árvore nos ajuda a compreender mais rapidamente o parentesco entre os processos. Sabendo que determinados processos influenciam no funcionamento de outros, fica mais fácil evitar que erros sejam cometidos pelo usuário (sobretudo o iniciante).
Exemplo de uso:
#profissionaislinux@etinet:~$ pstree
systemd─┬─Main───4*[{Main}]
├─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─agetty
├─avahi-daemon───avahi-daemon
├─bluetoothd
├─colord───2*[{colord}]
├─cron
├─cups-browsed───2*[{cups-browsed}]
├─cupsd
├─dbus-daemon
├─firefox─┬─RDD Process───3*[{RDD Process}]
│ ├─Web Content───28*[{Web Content}]
│ ├─2*[Web Content───26*[{Web Content}]]
│ ├─3*[Web Content───25*[{Web Content}]]
│ ├─Web Content───31*[{Web Content}]
│ ├─Web Content───19*[{Web Content}]
│ ├─WebExtensions───29*[{WebExtensions}]
│ └─77*[{firefox}]
Um ponto importante, por exemplo, é que o pstree evidencia melhor quais são os processos parent. Fechando um parent, você estará encerrando junto a ele todos os processos children.
3. top
Você quer saber quais são os processos existentes no sistema com atualizações em tempo real? Então utilize o comando top no seu terminal agora mesmo — basta digitar top no terminal.
Além de mostrar o panorama do que acontece no momento, ele fornece informações detalhadas de cada processos, tais como PID, prioridade (PR), status (S) e percentual de recursos usados da CPU.
Observação: quando inicializada, a ferramenta top só se encerra quando pressionamos a tecla q (sem Caps Lock) ou fechamos o terminal, simplesmente.
4. htop
Assim como o top, o comando htop é usado para fornecimento de detalhes acerca dos processos em execução. A diferença entre eles, no entanto, é a maneira como a qual são apresentadas as informações: ela ocorre de forma mais intuitiva e inteligente.
Por exemplo, ela permite que selecionemos um processo e tomemos alguma ação. Diferentemente do comando top, no htop, cores são utilizadas para facilitar a compreensão do usuário. Além disso, ao digitar F5 a apresentação adquire o formato de diagrama de árvore.
Outro recurso bem legal do htop é a sua integração com o comando kill — que conheceremos, abaixo —, a qual nos permite fechar um processo usando a tecla F9.
5. kill
Ele se caracteriza como um gerenciador de processos que, por meio de sinais, permite ao usuário escolher entre diversas ações direcionadas às tarefas.
Na prática, ele nos fornece uma lista contendo vários sinais que podemos utilizar. Mas o que é possível fazer com os processos usando o comando? Resposta: encerrar, bloquear, reiniciar, abortar execução, emitir alertas e muito mais.
Os sinais que podemos emitir por meio do comando kill são diversos. Digitando o comando kill -L, o terminal retorna a lista completa de sinais — o artigo que mencionei acima fornece mais detalhes sobre a função de cada um deles.
Por exemplo, temos entre eles o sinal SIGSEGV, cuja identificação é o número 11, que tem a finalidade de interromper um processo quando este viola as regras de acesso do sistema.
Supondo-se que o processo de PID de nº 14052 não tenha confiabilidade ou permissões necessárias para continuar, vamos encerrá-lo com o comando:
kill -11 14052
Se a ideia é forçar a parada de um processo, o sinal é o de número 9 (SIGKILL); portanto, dentro do contexto colocado no exemplo, bastaria digitarmos
kill -9 14052.
6. who
O comando who é útil nos casos em que gerenciamos usuários, seja num servidor, seja num computador compartilhado. Quem está minimamente habituado com o idioma inglês já entende que who significa “quem”, e o que esse comando faz é, justamente, exibir quem acessou o sistema recentemente.
A ideia por trás da utilização do comando who não é apenas descobrir quem logou no sistema. Como estamos falando de processos, costumamos acioná-lo para nos atentarmos aos processos que vamos fechar, por exemplo, pois a ação pode prejudicar outros usuários.
Mais uma possibilidade a qual estamos sujeitos é acessarmos o sistema com o login de outra pessoa (da perspectiva do Linux). Por isso, é recomendado o uso frequente do comando whoami (ou w, simplesmente), que nos retorna a seguinte informação: quem nós somos no momento.
7. glances
Se você pretende fazer um monitoramento mais amplo no sistema, o glances é uma solução e tanto. Glances é uma ferramenta que não costuma vir por padrão nas distribuições Linux, portanto ela requer instalação.
#sudo apt install glances
A instalação é bem rápida (menos de 80M de arquivos), dependendo da sua conexão banda larga, e basta digitar glances no terminal para iniciar o monitoramento. Que tipos de informações são fornecidas? Alguns exemplos:
uso de memória SWAP;
consumo de CPU e RAM;
quantidade de tarefas e respectivos status;
endereço de IP; e
espaço livre em disco.
Além das informações gerais, o glances, logicamente, exibe os processos existentes de modo bem detalhado. De que detalhes estou falando? Consumo de CPU e RAM, comando, tempo de uso, PID, usuário, entre outros.
8. nice
Um fator pouco abordado até aqui a respeito de processos é a priorização. Estabelecer prioridades é um meio eficiente para otimizar o funcionamento de um programa quando há muitos processos em aberto, o que gera lentidão ao sistema.
O comando nice é providencial nesse sentido, pois ele nos permite definir prioridade alta para os processos que tratamos como importantes no momento, e reduzir a prioridade dos secundários.
Em ambientes corporativos de grande porte e que trabalham com aplicações de missão crítica, por exemplo, a estratégia ajuda bastante na hora de manter o bom funcionamento dos processos importantes.
A sintaxe do comando nice é muito simples, bastando usarmos a opção -n seguida de um valor de prioridade (o padrão é 0) mais o nome do processo. Exemplo:
#nice -n 19 processoX
Acima, definimos a mais alta prioridade possível para o processoX, pois os limites variam entre os valores -20 e 19. Da mesma maneira, pode-se reduzir a prioridade de alguns processos irrelevantes (esse ponto é crucial) para otimizar ainda mais a execução do programa que deseja utilizar.
9. nohup
Muitos processos são descontinuados quando encerramos uma sessão, suspendemos o sistema ou fechamos o terminal. O incômodo que isso gera em termos de experiência é grande.
Um bom exemplo é o torrent; se você está baixando um arquivo extenso e precisa se ausentar, é possível manter o processo rodando mesmo que se faça log out, ou seja, é um meio de economizar energia elétrica e não expor o acesso à máquina.
Bacana, mas como fazer isso? Existe uma ferramenta que acompanha as distros Linux chamada nohup. Ela nos permite enviar um processo para o modo background, então o programa continua rodando mesmo se a sua GUI ou tela do terminal é encerrada. Exemplo de uso:
#nohup nome_do_programa &
Observação: o caractere “&” é utilizado para enviar o processo para segundo plano.
Ao longo deste artigo, aprendemos o que são processos e como eles são compreendidos em um sistema Linux. Em seguida, conferimos oito comandos essenciais ao gerenciamento de processos, os quais são a base para tudo nesse sentido. Daqui em diante, só praticar!
Fonte: https://e-tinet.com/
Texto adaptado por: Luciano Ribeiro
Fazer o particionamento de disco no Linux costuma ser uma das primeiras lições que o público novato aprende quando migra do Windows. O meu palpite é que isso acontece por curiosidade, mas porque o usuário, cansado do Windows por alguma razão, procura experimentar o Linux, porém sem abrir mão do sistema do qual “cresceu utilizando”.
Qual a relação entre as duas coisas? Talvez não seja uma novidade para você, mas cabe frisar rapidamente: é possível criar um dual boot no seu computador. Assim, a máquina é capaz de rodar múltiplos sistemas operacionais, permitindo ao usuário escolher o qual deseja utilizar no momento. Então sim: você pode rodar Linux e Windows no seu PC.
O assunto já foi explorado algumas vezes nas publicações do blog. Contudo, decidi criar um conteúdo que sirva de guia para particionamento de disco no Linux, deixando os artigos fragmentados somente nos casos em que você necessitar de abordagens mais específicas.
Portanto, este artigo contém informações que abrangem:
tipos de partições;
sistemas de arquivos;
ferramentas e utilitários para particionamento; e
comandos para gerenciar partições.
Como manda o cronograma, vamos começar pelos tipos de partições existentes no seu disco rígido com Linux instalado.
Antes de tudo, o que são partições? Basicamente, são divisões do HD. Imaginemos um disco rígido de 500GB de capacidade. Dentro de sua estrutura lógica (a parte abstrata), há quatro divisões bem delimitadas com os respectivos espaços (em GB): 150, 340, 4, 6.
O primeiro valor corresponde ao espaço reservado para o sistema operacional. O segundo, armazenamento de dados diversos. O terceiro, memória Swap. O quarto, áreas dedicadas a arquivos cruciais usados no boot. Cada um dos volumes é o que chamamos partição.
Como o exemplo acima ilustra, a partição de um disco pode servir para vários propósitos. Em todos os casos existe uma vantagem em comum: o conteúdo de uma partição fica sempre isolado das demais partições.
Logo, se a partição em que se encontra o sistema operacional é formatada, as outras permanecem intactas. Portanto é recomendado que se crie uma partição exclusiva para dados, evitando que eles corram risco de remoção na hora de formatar partições ou instalar / reinstalar um sistema operacional.
Agora que exploramos o conceito de particionamento de disco no Linux, vejamos, a seguir, elementos que fazem parte do processo (tipos de partições, sistema de arquivos etc.).
Uma partição Native (ou Data) representa o espaço em disco dedicado à instalação da sua distribuição do Linux ou armazenamento de dados, simplesmente. Quando formatada, a unidade do tipo Native recebe um sistema de arquivos escolhido pelo próprio usuário — explicarei mais adiante.
Normalmente, o usuário que migra do Windows para o Linux utiliza um computador que já veio com sistema da Microsoft instalado de fábrica. É necessário tomar muito cuidado quando se faz o gerenciamento de partições usando programas específicos, como o GParted.
O motivo para o alerta é que o Windows utiliza de uma pequena partição exclusiva para carregar os drivers com segurança chamada EFI. Nesse caso, o computador recorre sempre a essa partição antes de carregar o Windows Boot Manager.
Embora ela fique oculta na navegação do sistema, ela é revelada pelo GParted e, se formatada / excluída, compromete até mesmo o boot do Linux — exigindo reparos e reinstalação do Grub, por exemplo.
Retomando a definição que dei neste artigo especial sobre partição Swap, ela consiste em “um espaço restrito que armazena uma quantidade de memória física a ser utilizada quando o sistema operacional fica sobrecarregado. É como uma ‘válvula de escape’ para o computador, a qual evita a queda de desempenho, travamentos e desligamentos automáticos”.
A capacidade reservada à partição Swap é definida pelo próprio usuário. No entanto, não é certo determinar a dimensão com base no “quanto mais, melhor”, pois o uso do disco rígido como RAM fornece um desempenho muito baixo. Sendo assim, opte por:
se a máquina tem até 2GB de RAM, utilize o dobro para Swap;
tendo a memória RAM 4GB ou mais, dedique metade do valor para Swap.
Outro ponto importante é a frequência com a qual o sistema recorrerá à memória Swap, que também é configurável no Linux. Se você tiver dúvidas quanto ao valor, ajuste para o padrão 60 (moderado) usando o comando vm.swappiness=60 no terminal.
Cada partição no Linux (o mesmo vale para outros sistemas operacionais) é formatada com um sistema de arquivos. Conforme a minha explicação no artigo que publiquei sobre o tema:
“Um sistema de arquivos (file system, do inglês) é um processo lógico, responsável por gerenciar o meio e o local do disco em que os dados são guardados. Todas as operações internas do hardware que ficam “escondidas” dos usuários são manejadas por esse sistema.”
Existem diversos tipos de sistemas de arquivos que podemos utilizar no Linux. O mais popular deles atualmente é o ext4. Ele se destaca por suportar arquivos de volume altíssimo, ser escalável e fornecer a função journaling, a qual aumenta as chances de recuperação de dados após interrupções de sistema.
Sim, quando se trata de filesystem e Linux, as soluções disponíveis carregam as próprias vantagens. Dependendo do propósito do usuário, há alternativas mais viáveis e outras, menos indicadas.
O JFS (Journaled File System), por exemplo, criado pela IBM, chega a ser mais antigo do que o próprio kernel Linux. A vantagem deste sistema de arquivos é a estabilidade em máquinas que funcionam melhor com sistemas operacionais antigos.
Durante a instalação de uma distro Linux, como Debian, Ubuntu e Mint, temos a opção de usar LVM para, entre outras coisas, elevar o nível de organização das partições, habilitar snapshots dos volumes de disco e possibilitar o redimensionamento dinâmico do tamanho da partição.
A questão da organização é: fazer com que as partições sejam localizadas a partir de um rótulo em vez de nome de dispositivo / interface. Por exemplo, podemos criar três partições com os respectivos nomes: vendas, contabilidade e marketing — isso faz toda a diferença em ambientes corporativos.
No quesito desempenho, o LVM tende a diminuir a performance de acesso ao disco rígido, mas dificilmente a perda é significativa. Em contrapartida, processos de leitura, gravação e transferência de dados são substancialmente otimizados. Para uso doméstico o LVM tem mais prós do que contras.
O redimensionamento dinâmico é, também, um aspecto muito interessante. Por meio de um programa de gerenciamento, o usuário consegue diminuir ou aumentar o espaço da partição instantaneamente. Ou seja, não há necessidade de formatar a partição para adicionar / retirar volume a ela.
Neste tópico, vamos conhecer brevemente alguns programas específicos para auxiliar no particionamento de disco. Para uma abordagem mais completa, já temos este artigo no qual foram apresentados seis gerenciadores de disco para Linux.
Entre as principais ferramentas da categoria, o já mencionado GParted é a mais popular entre os usuários, pois é rico em funções, é eficiente e é operado via interface gráfica, o que facilita muito o processo para quem ainda não se adaptou a linhas de comandos.
Nessa linha, inclusive, há várias opções interessantes. Como exemplos temos o GNOME Disk Utility, padrão nas versões do Debian, que dispõe de um mecanismo de monitoramento que previne falhas de hardware, além do QtParted, clone do Partition Magic, uma das melhores ferramentas de particionamento para Windows.
Por outro lado, se é um gerenciador CLI (command-line interface, ou seja, roda no terminal) que você busca, há outras ótimas opções, como o Parted, do projeto GNU, e o próprio Fdisk, que acompanha as distribuições Linux por padrão.
Aliás, é justamente esse tipo de solução que quero priorizar neste artigo: o uso de comandos para particionamento de disco no Linux. Vamos aprender a utilizá-los? No tópico a seguir, listei uma série de instruções a serem aplicadas tanto no Parted quanto no Fdisk.
Utilizar comandos para gerenciar discos, quando há o domínio dos procedimentos, resulta agilidade, pois o terminal se comunica mais rapidamente com o kernel, e economia de recursos computacionais, visto que não há consumo significativo de processamento e RAM.
Outra ótima razão para uso de linha de comando é a possibilidade de ir além com as ferramentas. Por mais vantagens que a interface gráfica ofereça, é certo que o usuário fica limitado àquelas funcionalidades ali presentes, enquanto o terminal nos permite introduzir novos comandos.
Sabendo dos benefícios em se tornar expert em comandos no Linux, vamos começar a praticar fazendo o particionamento de disco via terminal? Abaixo, separei para você alguns comandos úteis do Parted e também do Fdisk.
Se você utiliza o Ubuntu, é provável que o GNU Parted já esteja instalado no sistema e pronto para uso, mas se por alguma razão não estiver instalado, siga as instruções do site oficial do GNU Project.
Para confirmar se o Parted está funcionando, vamos listar as partições existentes usando o seguinte comando: sudo parted -l.
Funcionou? Então você está de frente para um conjunto de informações e detalhes das partições, como o número, a capacidade, o mapeamento, o sistema de arquivos, o nome etc.
Esteja operando um computador com múltiplos discos rígidos, esteja trabalhando com um notebook com HD particionado, você pode selecionar um componente ou partição para gerenciá-lo isoladamente.
Suponhamos que o seu objetivo seja promover alterações na partição /dev/sda3. Digite o comando:
#sudo parted /dev/sda3
Logo em seguida será exibida em tela uma mensagem de confirmação:
GNU Parted 3.2
Using /dev/sda2
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
Detalhe importante: antes de prosseguir com qualquer comando de gerenciamento, tenha certeza de que o dispositivo foi declarado corretamente. Do contrário, o Parted selecionará aleatoriamente uma partição para aplicar os procedimentos.
Tabelas de partições nada mais são que um registro de informações básicas da partição.Usando alguns dos comandos mklabel ou mktable, podemos criar tabelas em um dispositivo de armazenamento de modo a facilitar o mapeamento, então não se trata de particionar disco.
Fazendo isso, cabe explicar, apagará todas as informações de rótulo da partição para que sejam substituídas pelos detalhes que serão coletados pelo Parted. Não havendo problemas em proceder, digite:
#sudo parted mklabel gpt
# Tecle Y em seguida para confirmar a ação
Concluído o processo, imediatamente o dispositivo será rotulado com as novas informações, o que facilitará o gerenciamento.
Criar uma partição de disco
Como sempre, criar uma partição exige cuidados na hora de digitar os comandos, pois qualquer equívoco pode ser fatal. Ciente da partição a ser criada e tomando por referência a sua ordem na lista (1, 2, 3…), digite:
sudo parted mkpart PartiçãoLinux 2 50000MB
Acima, declaramos que no espaço de disco marcado pela flag 2 será criada uma partição de 50.000MB (=50GB), a qual receberá o nome “PartiçãoLinux”. Para confirmar a ação, basta digitar: sudo parted quit.
Assim como o Parted, o utilitário Fdisk requer permissões root para funcionar e tem a sintaxe bem simples. A listagem de discos e partições, por exemplo, é feita a partir do comando sudo fdisk -l.
Para verificar as partições em um determinado disco rígido, digite o mesmo comando acompanhado do rótulo do dispositivo. Exemplo: sudo fdisk -l /dev/sda1.
O Fdisk é muito prático até mesmo para quem acaba de conhecer o Linux. Prova disso é que as informações de tabela de partição são impressas no terminal apenas selecionando a partição e, em seguida, o comando desejado. Exemplo:
sudo fdisk /dev/sda2
# Acabamos de escolher a partição
Logo que selecionamos a partição, o Fdisk solicitará um comando para que alguma ação seja tomada. Como a intenção é de obter detalhes sobre o elemento, digite p e dê Enter.
O exemplo anterior foi suficiente para demonstrar o modo de funcionamento do Fdisk. Isto é, digitamos fdisk mais a partição ou o dispositivo em questão e, então, digita-se um comando para ação (cada um deles é por uma letra somente). Sendo assim, não há segredos para dominar o utilitário; apenas confira a lista:
a: alterna um sinalizador de inicialização
b: edita rótulo de disco BSD
c: alterna o sinalizador de compatibilidade DOS
d: deleta a partição selecionada
l: lista as partições existentes
m: imprime o menu “ajuda”
n: adiciona uma nova partição
o: cria uma tabela de partição DOS
p: exibe informações da tabela de uma partição
q: fecha o Fdisk sem salvar as alterações
s: cria um rótulo de disco Sun (tipo de partição criada automaticamente pelo sistema, sempre na terceira partição)
t: altera o identificador de uma partição
u: modifica unidades de exibição / entrada
v: verifica a tabela de partição
w: escreve tabela de partição / disco e fecha programa
x: funcionalidade extra (uso recomendado a usuários experientes)
Resumindo, desde que se saiba o que está fazendo, executar no Fdisk é muito fácil.
Apenas para não deixar em branco, a funcionalidade extra do Fdisk permite ao usuário fazer modificações diretamente no disco rígido, como alterar o número de cilindros e dos setores do HD. Portanto é um modo restrito a testes e reparos e que exige certo nível de conhecimento técnico no assunto.
Fonte: https://e-tinet.com/
O IPv6 ainda não é um padrão para todos os provedores no Brasil, e também em alguns lugares do mundo. No entanto, não é muito difícil encontrar usuários do GNU/Linux reclamando de problemas com a nova geração de IPv6 não é raro, por isso, se você tem esse problema por ser usuário de um internet cujo o provedor ainda usa o IPv4, saiba como desabilitar o IPv6 definitivamente do Ubuntu, Linux Mint e derivados, mas claro, vamos também dar a opção de como reativar o IPv6 no Ubuntu, caso a sua rede passe a usar o IPv6 no futuro.
Para desabilitar o IPv6 execute os comandos abaixo no terminal, você pode abrir o Terminal manualmente ou se preferir utilize o atalho no teclaro Ctrl + Alt + T e copie e cole os comandos abaixo:
Para habilitar o IPv6 use o valor 0
Para desabilitar o IPv6 use o valor 1
#cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Confira a minha tela abaixo, observe que no meu caso o valor foi 1, isso quer dizer que o IPv6 esta ja se econtra desativado na minha distribuição.
Para ativar ou desabilitar o IPv6 você deve editar o arquivo a seguir, execute os comandos no terminal:
#sudo gedit /etc/sysctl.conf
Adicione estas linhas, observe que estamos usando o 1. que quer dizer que estamos desabilitando o IPv6, para ativar use o 0:
*Desabilitando IPv6
#net.ipv6.conf.all.disable_ipv6 = 1
#net.ipv6.conf.default.disable_ipv6 = 1
#net.ipv6.conf.lo.disable_ipv6 = 1
Por último, salve e feche o arquivo, para que as alterações entre em vigor execute o comando abaixo:
sudo sysctl -p
E por fim, vamos executar aquele mesmo comando que vimos inicialmente, vamos checar se o IPv6 esta mesmo desativado:
#cat /proc/sys/net/ipv6/conf/all/disable_ipv6
O resultado deve ser 1. É isso, espero ter ajudado você a desabilitar o IPv6 no Ubunu, fazendo o contrário você vai ativar.
Por Luciano Ribeiro.
Bom trabalho.
Neste post de dicas de linha de comando Linux/Unix, você aprenderá:
Comandos básicos do Linux
Comandos de permissão de arquivo
Comando Variáveis de Ambiente
Comandos de gerenciamento de usuários do linux
Comando de rede
Comando de processo
Comandos de edição VI
Comando e Descrição
ls Lista todos os arquivos e diretórios no atual diretório de trabalho
ls -R Lista arquivos em subdiretórios também
ls -a Lista arquivos ocultos também
ls -al Lista arquivos e diretórios com informações detalhadas como permissões, tamanho, proprietário, etc.
cd or cd ~ Navegue até o diretório HOME
cd .. Mover um nível para cima
cd Para mudar para um diretório específico
cd / Mover para o diretório raiz
cat > filename Cria um novo arquivo
cat filename Exibe o conteúdo do arquivo
cat file1 file2 > file3 Junta dois arquivos (arquivo1, arquivo2) e armazena a saída em um novo arquivo (arquivo3)
mv file "new file path" Move os arquivos para o novo local
mv filename new_file_name Renomeia o arquivo para um novo nome de arquivo
sudo Permite que usuários regulares executem programas com os privilégios de segurança do superusuário ou root
rm filename Exclui um arquivo
man Fornece informações de ajuda sobre um comando
history Fornece uma lista de todos os comandos anteriores digitados na sessão de terminal atual
clear Limpa o terminal
mkdir directoryname Cria um novo diretório no diretório de trabalho atual ou no caminho especificado
rmdir Exclui um diretório
mv Renomeia um diretório
pr -x Divide o arquivo em x colunas
pr -h Atribui um cabeçalho ao arquivo
pr -n Denota o arquivo com números de linha
lp -nc , lpr c Imprime cópias “c” do Arquivo
lp-d lp-P Especifica o nome da impressora
apt-get Comando usado para instalar e atualizar pacotes
mail -s 'subject' -c 'cc-address' -b 'bcc-address' 'to-address' Comando para enviar e-mail
mail -s "Subject" to-address < Filename Comando para enviar e-mail com anexo
Comando e Descrição
ls -l Para mostrar o tipo de arquivo e a permissão de acesso
r Permissão de leitura
w Permissão de gravação
x Permissão de execução
-= Sem permissão
Chown user Para alterar a propriedade de um arquivo/diretório
Chown user:group filename Alterar o usuário, bem como o grupo de um arquivo ou diretório
Comando e Descrição
echo $VARIABLE Para exibir o valor de uma variável
env Exibe todas as variáveis de ambiente
VARIABLE_NAME= variable_value Criar uma nova variável
Unset Remover uma variável
export Variable=value Para definir o valor de uma variável de ambiente
Comando e Descrição
sudo adduser username Para adicionar um novo usuário
sudo passwd -l 'username' Para alterar a senha de um usuário
sudo userdel -r 'username' Para remover um usuário recém-criado
sudo usermod -a -G GROUPNAME USERNAME Para adicionar um usuário a um grupo
sudo deluser USER GROUPNAME Para remover um usuário de um grupo
finger Mostra informações de todos os usuários logados
finger username Fornece informações de um determinado usuário
Comando e Descrição
SSH username@ip-address or hostname Faça login em uma máquina Linux remota usando SSH
Ping hostname="" or ="" Para fazer ping e analisar conexões de rede e host
dir Exibir arquivos no diretório atual de um computador remoto
cd "dirname" Alterar o diretório para “dirname” em um computador remoto
put file Carregar ‘arquivo’ do computador local para o remoto
get file Baixe o ‘arquivo’ do computador remoto para o local
quit Sair
Comando e Descrição
bg Para enviar um processo para segundo plano
fg Para executar um processo parado em primeiro plano
top Detalhes sobre todos os processos ativos
ps Dê o status dos processos em execução para um usuário
ps PID Dá o status de um determinado processo
pidof Fornece o ID do processo (PID) de um processo
kill PID Mata um processo
nice Inicia um processo com uma determinada prioridade
renice Altera a prioridade de um processo já em execução
df Dá espaço livre no disco rígido em seu sistema
free Dá RAM livre em seu sistema
Comando e Descrição
i Inserir no cursor (entra no modo de inserção)
a Escrever após o cursor (entra no modo de inserção)
A Escreva no final da linha (entra no modo de inserção)
ESC Terminar o modo de inserção
u Desfazer última alteração
U Desfazer todas as alterações em toda a linha
o Abra uma nova linha (entra no modo de inserção)
dd Excluir linha
3dd Excluir 3 linhas
D Excluir conteúdo da linha após o cursor
C Exclua o conteúdo de uma linha após o cursor e insira um novo texto. Pressione a tecla ESC para finalizar a inserção.
dw Excluir palavra
4dw Excluir 4 palavras
cw Alterar palavra
x Excluir caractere no cursor
r Substituir caractere
R Substituir caracteres do cursor em diante
s Substituir um caractere sob o cursor continuar a inserir
S Substitua a linha inteira e comece a inserir no início da linha
~ Alterar maiúsculas e minúsculas de caractere individual
Por Luciano Ribeiro.
Bom trabalho.
Os sistemas de arquivos Linux são responsáveis por organizar como os dados são armazenados e recuperados. De uma forma ou de outra, com o tempo, o sistema de arquivos pode ser corrompido e certas partes dele podem não estar acessíveis. Se o seu sistema de arquivos desenvolver tal inconsistência, é recomendável verificar sua integridade.
Isso pode ser concluído por meio de um utilitário de sistema chamado fsck (verificação de consistência do sistema de arquivos), que verifica o sistema de arquivos raiz automaticamente durante o tempo de inicialização ou é executado manualmente.
Neste artigo, revisaremos o comando fsck e seu uso para ajudá-lo a reparar erros de disco do Linux.
Existem diferentes cenários em que você deve executar o fsck. Aqui estão alguns exemplos:
O sistema falha ao inicializar.
Os arquivos no sistema ficam corrompidos (muitas vezes você pode ver erros de entrada/saída).
A unidade anexada (incluindo unidades flash/cartões SD) não estão funcionando como esperado.
O comando fsck precisa ser executado com privilégios de super usuário ou root. Você pode usá-lo com diferentes argumentos. Seu uso depende do seu caso específico. Abaixo você verá algumas das opções mais importantes:
-A – Usado para verificar todos os sistemas de arquivos. A lista é retirada de /etc/fstab.
-C – Mostra a barra de progresso.
-l – Bloqueia o dispositivo para garantir que nenhum outro programa tente usar a partição durante a verificação.
-M – Não verifica sistemas de arquivos montados.
-N – Mostra apenas o que seria feito – nenhuma alteração real é feita.
-P – Se você deseja verificar sistemas de arquivos em paralelo, incluindo root.
-R – Não verifica o sistema de arquivos raiz. Isso é útil apenas com ‘-A‘.
-r – Fornece estatísticas para cada dispositivo que está sendo verificado.
-T – Não mostra o título.
-t – Especifique exclusivamente os tipos de sistema de arquivos Linux a serem verificados. Os tipos podem ser listas separadas por vírgulas.
-V – Forneça uma descrição do que está sendo feito.
Para executar fsck, você precisará garantir que a partição que você verificará não esteja montada. Para o propósito deste artigo, usarei minha segunda unidade /dev/sdb montada em /mnt.
Aqui está o que acontece se eu tentar executar fsck quando a partição estiver montada.
# fsck /dev/sdb
Para evitar isso, desmonte a partição usando.
# umount /dev/sdb
Então fsck pode ser executado com segurança.
# fsck /dev/sdb
Depois de executar fsck, ele retornará um código de saída. Esses códigos podem ser vistos no manual do fsck executando:
# man fsck
0 No errors (Sem erros)
1 Filesystem errors corrected (Erros do sistema de arquivos corrigidos)
2 System should be rebooted (O sistema deve ser reiniciado)
4 Filesystem errors were left uncorrected (Erros do sistema de arquivos não foram corrigidos)
8 Operational error (Erro operacional)
16 Usage or syntax error (Erro de uso ou sintaxe)
32 Checking canceled by user request (Verificação cancelada por solicitação do usuário)
128 Shared-library error (Erro de biblioteca compartilhada)
Às vezes, mais de um erro pode ser encontrado em um sistema de arquivos. Nesses casos, você pode querer que o fsck tente automaticamente corrigir os erros. Isso pode ser feito com:
# fsck -y /dev/sdb
O sinalizador -y, \yes” automaticamente para qualquer prompt do fsck para corrigir um erro.
Da mesma forma, você pode executar o mesmo em todos os sistemas de arquivos (sem root):
$ fsck -AR -y
Em alguns casos, pode ser necessário executar fsck na partição raiz do seu sistema. Como você não pode executar fsck enquanto a partição estiver montada, tente uma destas opções:
Forçar fsck na inicialização do sistema
Execute fsck no modo de recuperação
Iremos analisar ambas as situações.
Isso é relativamente fácil de concluir, a única coisa que você precisa fazer é criar um arquivo chamado forcefsck na partição raiz do seu sistema. Use o seguinte comando:
# touch /forcefsck
Então você pode simplesmente forçar ou agendar uma reinicialização do seu sistema. Durante a próxima inicialização, o fsck será executado. Se o tempo de inatividade for crítico, é recomendável planejar isso com cuidado, pois se houver muitos inodes usados em seu sistema, o fsck pode levar algum tempo extra.
Após a inicialização do sistema, verifique se o arquivo ainda existe:
# ls /forcefsck
Em caso afirmativo, você pode querer removê-lo para evitar fsck em cada inicialização do sistema.
Executar fsck no modo de resgate requer mais algumas etapas. Primeiro, prepare seu sistema para reinicialização. Pare todos os serviços críticos como MySQL/MariaDB etc e digite.
# reboot
Durante a inicialização, mantenha pressionada a tecla shift para que o menu do grub seja exibido. Selecione \Opções avançadas”.
Em seguida, escolha \Modo de recuperação.
No próximo menu selecione \fsck.
Você será perguntado se deseja ter seu sistema de arquivos / remontado. Selecione \sim.
Você deve ver algo semelhante a isso.
Você pode retomar a inicialização normal selecionando \Resume.
Conclusão:
Neste tutorial, você aprendeu como usar fsck e executar verificações de consistência em diferentes sistemas de arquivos Linux.
Reparo Zabbix: fsck /dev/sda2 -f -c -y
Fonte: https://pt.linux-console.net/?p=2349
Adaptado por Luciano Ribeiro.