Arquivo 2011

Gerenciamento de pacotes com dpkg

O dpkg é o gerenciador de pacotes padrão em distribuições Debian e derivados. Seu gerenciamento é bem simplificado através de parâmetros e argumentos passados via linha de comandos, abaixo veremos alguns simples exemplos de utilização do dpkg nas tarefas diárias de um administrador de sistemas:

Para listarmos todos os pacotes disponíveis no sistema, pode-se executar a seguinte linha de comandos:

root@server:~# dpkg -l

A lista ficaria bem extensa, então é possível também redirecionar a saída para um pipe e filtrar somente os pacotes que estamos procurando:

root@server:~# dpkg -l |grep apache
ii  apache2                             2.2.16-6+squeeze2            Apache HTTP Server metapackage
ii  apache2-mpm-worker                  2.2.16-6+squeeze2            Apache HTTP Server - high speed threaded model
ii  apache2-utils                       2.2.16-6+squeeze2            utility programs for webservers
ii  apache2.2-bin                       2.2.16-6+squeeze2            Apache HTTP Server common binary files
ii  apache2.2-common                    2.2.16-6+squeeze2            Apache HTTP Server common files
ii  libapache2-mod-proxy-html           3.0.1-1                      Apache2 filter module for HTML links

No exemplo acima, foram listados todos os pacotes que  possuem “apache” em seu nome, isso graças ao filtro permitido pelo pipe. Para adicioanar um pacote, utilizamos a opção -i do dpkg:

root@server:~# dpkg -i rkhunter_1.3.6-4_all.deb

Acima efetuamos a instalação do pacote rkhunter. Note que devemos indormar o nome completo do arquivo incluindo a extensão .deb. Já no processo de remoção de pacotes não precisamos especificar a extensão, somente o nome do pacote. Abaixo usaremos como exemplo novament e o pacote rkhunter como exemplo de remoção de um pacote utilizando o dpkg:

root@server:~# dpkg -l |grep rkhunter
ii  rkhunter                            1.3.6-4                      rootkit, backdoor, sniffer and exploit scanner

Na linha acima, listamos o pacote rkhunter para saber se o mesmo estava instalado no sistema. Agora utilizando a opção -r removemos o pacote com a linha de comandos abaixo:

root@server:~# dpkg -r rkhunter

Uma grande utilidade do comando dpkg, é quando possuímos determinado arquivo mas não sabemos a que pacote o mesmo peertence. A opção -S serve para listar os pacotes pertencentes a cada arquivo:

root@server:~# dpkg -S /etc/rkhunter.conf
rkhunter: /etc/rkhunter.conf

Com o resultado acima, podemos ver que o arquivo /etc/rkhunter.conf pertence ao pacote  rkhunter.

Também podemos listar todos os arquivos referentes a um determinado pacote, com a opção -L é possível realizar tal procedimento:

root@server:~# dpkg -L rcconf
/.
/var
/var/lib
/var/lib/rcconf
/usr
/usr/sbin
/usr/sbin/rcconf
/usr/sbin/update-rcconf-guide
/usr/share
/usr/share/doc
/usr/share/doc/rcconf
/usr/share/doc/rcconf/README.Debian
/usr/share/doc/rcconf/copyright
/usr/share/doc/rcconf/changelog.gz
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/rcconf.8.gz
/usr/share/man/man8/update-rcconf-guide.8.gz
/usr/bin

Se por alguma razão for necessário extrair os arquivos de um pacote, a opção -x, observe abaixo que extraímos o pacote para nosso diretório local indicando um (.), pois é necessário sempre informar um destino ao utilizar esta opção:

root@server:/tmp/teste# dpkg -x /var/cache/apt/archives/rcconf_2.5_all.deb .
root@server:/tmp/teste# ls -l
total 8
drwxr-xr-x 5 root root 4096 Nov 16  2009 usr
drwxr-xr-x 3 root root 4096 Nov 16  2009 var

 

Desligando o sistema pelo botão

Esta trata-se de uma dica simples, porém funcional. Com a utilização do módulo button é possível desligar o sistema com a mesma segurança de efetuar o desligamento utilizando os comandos halt, shutdown ou init. O mesmo é muito útil para casos de computadores ou servidores que nao possuem monitor, teclado ou mouse. Bastando apenas pressionar o botão poweb para ligar ou desligar o sistema. Caso o módulo não esteja carregado por padrão, o mesmo deve ser carregado com o comando modprobe:

#modproble button

Após este procedimento, podem ser utilizadas diversas formas de ativá-lo na inicialização do sistema para ser carregado automaticamente após o boot.

 

 

Limpando a memória cache

Em diversos casos ao acessar nosso sistema Linux, através do comando free percebemos que o sistema está com toda sua memória em utilização. Porém é necessário prestar atenção ao campo cached, o mesmo traz informações sobre a utilização da memória cache no sistema. Em diversos casos, a maioria da memória disponível ao sistema encontra-se em cache, ou seja, progrmas que foram abertos utilizam estas áreas de memória e quando forem abertos novamente serão abertos de forma bem mais rápida, pois já existe um cache em memória. Este não se trata de um problema, porém em muitos casos como um sistema de monitoramento, esta característica pode render falsos positivos ao administrador. Neste caso, para efetuar a limpeza de memória cache, basta prosseguir com os seguintes comandos:

sysctl -w vm.drop_caches=3

Este comando irá efetuar a limpeza da memória cache. Caso seja da preferência do administrador, é possível criar um agendamento de tarefas com o cron para limpar o cache de memória em determinados intervalos de tempo, ou ativar efetuvamente a configuração no arquivo /etc/sysctl.conf, para que a funcionalidade seja ativada na inicialização do sistema.