Novo site

www.networkadmins.com.br

sábado, 7 de abril de 2012

Comando chroot

O comando chroot muda o diretório root do processo corrente e de seus processos filhos.
A partir daí, você tem um prompt de comando da distribuição instalada, que pode ser usado para
recuperar o sistema. Pode ser usado para recuperar o boot do Linux, caso o tenha perdido instalando
outro Sistema Operacional, troca de senha..

Exemplo de uso:
Situação grub com problema, com um live-cd monte o hd do sistema linux na pasta /mnt/lnt “mount
/dev/sda1 /mnt/lnt”, execute o comando a baixo e apartir desse ponto podemos recuperar o grub
como se estivesse como root no sistema operacional com problema
chroot {diretório}{comando}
chroot /mnt/lnt mkdir bin boot dev etc home libe media mnt opt proc root sbin selinux srv sys tmp
usr var

O comando acima muda o diretório do root para a pasta /mnt/lnt e criar as pastas dentro do mesmo
diretório.
chroot /mnt/lnt /bin/bash
/mnt/lnt  =  ponto de montagem
/bin/bash  = o bash do sistema.          

O comando acima passa o raiz “/” do root para “/mnt/lnt” e assim podemos recuperar o sistema,
grub, troca de senha ou até mesmo para a instalação de um sistema operacional manualmente.
Ao entrar como chroot:
o bash vai mudar para.
bash-3.2#

Outro Exemplo prático:
Criação de uma distribuição linux, para poder instalar as ferramentas necessárias de
desenvolvimento sem prejudicar o sistema operacional utilizamos o comando chroot, passando a
raiz do root para o sistema operacional em desenvolvimento.

Comando route

Route: O comando route serve para exibição e alteração da tabela de roteamento.
Route aceita dois comandos: add, para adicionar uma rota, e del, para apagar
uma rota.

O comando têm a seguinte sintaxe:
add [-net |-host] endereço [gw gateway]

Exemplos:
route add -net 192.56.76.0 netmask 255.255.255.0 eth0

adiciona uma rota para a rede através de 192.56.76.x  em "eth0".
route del -net 192.168.80.0 netmask 255.255.255.0 dev eth1

adiciona uma rota para a rede através de 192.168.80..x  em "eth1".
route add default gw 172.16.3.1

Adiciona um gateway padrão
route -n | awk '$2 ~/[1-9]+/ {print $2;}'

Imprime a rota padão
route -n | grep  "^0\." | awk '{print "Gateway to the World: "$2", via "$NF""}'
Imprime a rota padão via interface.

Comando bz2

Introdução:
O bz2 é o formato de compatação no qual o software bzip2 compacta arquivos. O bzip2
comprime   arquivos   utilizando   um   algoritimo   e   também   oferece   vários   níveis   de
compressão variando o tamanho dos blocos de compactação.

Utilização:
O comando básico para a compactação no formato bz2 é o bzip2:
$ bzip2 -d arquivo.bz2 para descompactalçao
$ bzip2 -z arquivo para compactação

Existem outras variáveis da compactação como por exemplo o -k, que mantem o arquivo
original e cria um novo arquivo compactado:
$bzip2 -k arquivo

Outra variável possível é para o teste de integridade do arquivo. Podemos adicionar
também um nível de compressão maior a qualquer momento:
$bzip2 -t9 arquivo

Abaixo o menu de ajuda do bzip2 com todos os parametros do compactador:
• -d --decompress : força descompactação do arquivo
• -z --compress : força compactação do arquivo
• -k --keep : mantém (não deleta) os arquivos de entrada
• -f --force : sobrescreve se exitir arquivos de saída
• -t --test : testa a integridade do arquivo compactado
• -c --stdout : saída para saída padrão
• -q --quiet : omite mensagens de erro não críticas.
• -v --verbose : verboso (um segundo -v aumenta ainda mais)
• -L --license : exibe a versão do software e a licença
• -V --version : exige a versão do software e a licença
• -s --small : usa menos memória (no máximo 2500k)
• -1 .. -9 : seta o tamanho do bloco de 100k .. 900k
• --fast : alias para -1
• --best : alias para -9

Comando AWK

Introdução:
Awk é uma linguagem com muitas funcionalidades, excelente na manipulação de strings e
arquivo texto, muito útil pra usar na linha de comando, em scripts.

Utilização:
Para manipular strings o awk possui inúmeros parâmetros. Como contador de linhas,
retorna o numero total de linhas do arquivo informado (arquivo.txt), incluindo as linhas em
branco.

NR = numero de registros, ou numero de linhas quando contando as linhas como registro
de um arquivo.
                         awk 'END { print NR }' arquivo.txt

Lista arquivo sem as linhas linhas em branco
                         awk 'NF>0' arquivo.txt

Eliminar linhas em branco e redirecionar resultado para outro arquivo.
                         awk 'NF>0' arquivo.txt > arqlimpo.txt

Numerar todas as linhas de arquivo:
                         awk '{print NR" "$0}' arquivo.txt

Se quisermos imprimir a contagem do numero de campos de um arquivo:
                         awk '{print NF}' arquivo.txt

Ou, se quisermos imprimir apenas as linhas que possuam exatamente 10 campos:
                         awk -F: 'NF == 10 {print}' arquivo.txt

Comando tee

A ferramenta tee é utilizada para copiar o conteúdo da entrada padrão para um arquivo e para saída
padrão simultaneamente ou seja, quando necessitamos enviar o resultado da execução de um aplicativo
ou fluxo de dados para um arquivo e para a tela (monitor) ao mesmo tempo.
Opções de uso:
-a, --append
              concatena os dados no arquivo especificado (não sobrescreve)
-i, --ignore-interrupts
              ignora sinais de interrupção (kill)
--help mostra a ajuda
--version
              mostra as informações sobre a versão e sai
Autores: Mike Parker, Richard M. Stallman, and David MacKenzie.
Exemplos de uso:
cat /etc/squid/squid.conf | grep -v ^# | tee meusquid.conf.
find /dados -name “souzacruz” | tee -a resultados.txt
Mais informações: man tee, info tee

Comando screen


  O Screen atua como um gerenciador de janelas em modo texto, onde você consegue
dividir a janela, compartilhar a sessão em tempo real, além de várias outras
funcionalidades. Abaixo irei mostrar apenas algumas delas:
  Para executá-lo basta digitar:
[root@tiaomacale2 ~]#screen
 
  Se você quiser compartilhar sua sessão com um amigo para ele te ajudar a
resolver um problema, por exemplo, faço o seguinte:
  Peça para ele acessar sua máquina com o mesmo usuário que você está e digite:
[root@tiaomacale2 ~]#screen -x
  E apartir de agora a sessão já está sendo compartilhada com seu colega. Tudo
que ele digitar você enxerga e vice-versa.
  Colocando relógio no terminal: Pressione as teclas Ctrl+a, solte e depois ":",
sem aspas. Aparecerá no canto inferior esquerdo de sua tela um prompt, então
digite: hardstatus alwayslastline "%c %w"
  É só teclar enter e temos uma barra permanente (até que saia do screen) com
os nomes das janelas abertas e a hora atual.
  Saindo do Screen e recuperando a tela onde você estava: pressione Ctrl+a,
solte depois "d", para recuperar a tela onde estava digite:
[root@tiaomacale2 ~]#screen -r
  Agora você está no mesmo local que estava antes de fechar o screen.
  Para listar as "janelas" criadas pelo screen digite:
[root@tiaomacale2 ~]#screen -ls
 
  Criar nova sessão: [CTRL]+A c
  Visualizar o nome das janelas: [CTRL]+A w
  Sair sem fechar a sessão: [CTRL]+A d (desvincular) 
  Navegar entre as sessões:
  [CTRL]+A n (próxima sessão)
  [CTRL]+A p (sessão anterior)
  [CTRL]+A (numero da sessão)
  Para entrar novamente na sessão desvinculada:
[root@tiaomacale2 ~]#screen -r
  Para substituir o nome da sessão corrente, digite: [CTRL]+A A
  No modo de edição, altere o nome da sessão atual para um de sua preferência,
pode ser qualquer nome para diferenciá-las.
  Dividindo a janela:
  [CTRL]+A S (pressione o número de vezes desejado)
  [CTRL]+[TAB] (alterna entre as divisões criadas)
  [CTRL]+A Q (Maximiza o console corrente)
  Matando a sessão corrente (kill): [CTRL]+A k
  Salvando a tela em modo texto: [CTRL]+A h
  Será gerado um arquivo chamado hardcopy.0 no diretório corrente.

Comando find

Find: Procura por arquivos/diretórios recursivamente no disco. Find pode procurar arquivos
através de sua data de modificação, tamanho, etc através do uso de opções. Find.
-size [num ] Procura por arquivos que tiverem o tamanho [num].
-maxdepth [num ] Faz a procura até [num] sub-diretórios dentro do diretório que está sendo
pesquisado.

Obs.: Diretório raiz conta um nível.
-name [expressão ] Procura pelo nome [expressão] nos nomes de arquivos e diretórios
processados.

Exemplos:
Procura no diretório atual e sub-diretórios um arquivo comtamanho maior que 50000
kbytes (50Mbyte).
[root@tiaomacale2 /]# find /  -size +50000k
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/sys/devices/pci0000:00/0000:00:00.0/resource0
/usr/lib/locale/locale-archive
/proc/kcore

Procura no diretório raíz e sub-diretórios até o 3o. nível, um arquivo/diretório chamado
iptables.
[root@tiaomacale2 /]# find / -maxdepth 4  -name iptables
/lib/iptables
/etc/rc.d/init.d/iptables
/sbin/iptables

Procura no diretório raíz e sub-diretórios um arquivo/diretório
chamado host.
[root@tiaomacale2 /]# find / -name host
/lib/modules/2.6.18-194.el5/kernel/drivers/usb/host
/lib/modules/2.6.19/kernel/drivers/usb/host
/lib/modules/2.6.18-194.32.1.el5/kernel/drivers/usb/host
/usr/bin/host
/usr/src/linux-2.6.19/drivers/usb/host
/usr/src/kernels/2.6.18-194.el5-i686/drivers/usb/host
/usr/src/kernels/2.6.18-194.32.1.el5-i686/drivers/usb/host
find . -name '*.xml' -type f -print | xargs du -ch
Soma o uso do disco para arquivos do tipo .xml, imprimindo a soma de uso do disco e a
árvore de diretórios.