Capítulo 10. Recursos especiais do SUSE Linux

Sumário

10.1. Informações sobre pacotes de software especiais
10.2. Consoles virtuais
10.3. Mapeamento de teclado
10.4. Configurações de idioma e específicas de país

Resumo

Este capítulo começa com informações sobre vários pacotes de software, os consoles virtuais e o layout de teclado. Abordamos componentes de software como bash, cron e logrotate, porque eles foram mudados ou aperfeiçoados durante os últimos ciclos de lançamento. Mesmo que eles sejam pequenos ou considerados de menor importância, talvez os usuários desejem mudar o seu comportamento padrão, porque esses componentes muitas vezes estão intimamente ligados ao sistema. O capítulo termina com uma seção sobre configurações específicas de país e idioma (I18N e L10N).


10.1. Informações sobre pacotes de software especiais

Os programas bash, cron, logrotate, locate, ulimit e free, e o arquivo resolv.conf são muito importantes para os administradores de sistema e para vários usuários. Páginas do manual e de informações são duas fontes úteis de informações sobre comandos, mas nem sempre ambas estão disponíveis. O GNU Emacs é um editor de texto popular e muito configurável.

10.1.1. O pacote bash e /etc/profile

Bash é o shell padrão no SUSE Linux. Quando usado com um shell de login, ele lê vários arquivos de inicialização. O Bash os processa na ordem que são exibidos na lista.

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

Configurações personalizadas podem ser feitas em ~/.profile ou em ~/.bashrc. Para assegurar o processamento correto desses arquivos, é necessário copiar as configurações básicas de /etc/skel/.profile ou /etc/skel/.bashrc no diretório pessoal do usuário. É recomendável copiar as configurações de /etc/skel após uma atualização. Execute os seguintes comandos de shell para evitar a perda de ajustes pessoais:

mv ~/.bashrc ~/.bashrc.old
cp /etc/skel/.bashrc ~/.bashrc
mv ~/.profile ~/.profile.old
cp /etc/skel/.profile ~/.profile

Em seguida, copie os ajustes pessoais novamente dos arquivos *.old.

10.1.2. O pacote cron

Se você deseja executar comandos de maneira regular e automática em segundo plano, em momentos pré-definidos, o cron é a ferramenta tradicional a ser utilizada. O cron é regido por tabelas de tempo formatadas especialmente. Algumas delas são fornecidas com o sistema e os usuários podem gravar as suas próprias tabelas, se necessário.

As tabelas cron estão localizadas em /var/spool/cron/tabs. A /etc/crontab atua como uma tabela cron global do sistema. Digite o nome de usuário para executar o comando diretamente após a tabela de tempo e antes do comando. No Exemplo 10.1, “Entrada in /etc/crontab”, root é digitado. Tabelas específicas de pacote, localizadas em /etc/cron.d, possuem o mesmo formato. Consulte a página de manual cron (man cron).

Exemplo 10.1. Entrada in /etc/crontab

1-59/5 * * * *   root   test -x /usr/sbin/atrun && /usr/sbin/atrun

Você não pode editar /etc/crontab chamando o comando crontab -e. Este arquivo deve ser carregado diretamente em um editor, modificado e, em seguida, gravado.

Alguns pacotes instalam scripts de shell nos diretórios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly, cuja execução é controlada por /usr/lib/cron/run-crons. /usr/lib/cron/run-crons é executado a cada 15 minutos da tabela principal (/etc/crontab). Isso garante que os processos que tenham sido negligenciados possam ser executados no momento adequado.

Para executar os scripts de manutenção por hora, diário ou outros scripts de manutenção periódica em horários personalizados, remova os arquivos de marcação de horário regularmente, utilizando as entradas /etc/crontab (consulte o Exemplo 10.2, “/etc/crontab: Remoção de Arquivos de Marcação de Hora”, que remove a opção por hora antes de cada hora cheia, a opção diário uma vez ao dia às 2h14, etc.).

Exemplo 10.2. /etc/crontab: Remoção de Arquivos de Marcação de Hora

59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
14 2  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
29 2  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
44 2  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly

Os trabalhos de manutenção diária de sistema foram distribuídos a vários scripts por motivos de clareza. Eles estão contidos no pacote aaa_base. /etc/cron.daily contém, por exemplo, os componentes suse.de-backup-rpmdb, suse.de-clean-tmp ou suse.de-cron-local.

10.1.3. Arquivos de registro: Pacote logrotate

Existem vários serviços de sistema (daemons) que, junto com o próprio kernel, gravam regularmente o status do sistema e eventos específicos em arquivos de registro. Desta maneira, o administrador pode verificar regularmente o status do sistema em um determinado momento, reconhecer erros ou funções defeituosas e solucioná-los com total precisão. Esses arquivos de registro são normalmente armazenados em /var/log, como especificado pelo FHS e crescem em uma base diária. O pacote logrotate ajuda a controlar o crescimento desses arquivos.

Configure o logrotate com o arquivo /etc/logrotate.conf. Em particular, a especificaçãoinclude configura principalmente os arquivos adicionais a serem lidos. O SUSE Linux assegura que os programas que produzem arquivos de registro instalam arquivos de configuração individual em /etc/logrotate.d. Por exemplo, tais programas acompanham os pacotes apache2 (/etc/logrotate.d/apache2) e syslogd (/etc/logrotate.d/syslog).

Exemplo 10.3. Exemplo para /etc/logrotate.conf


# consulte "man logrotate" para obter os detalhes 
# rotacione os arquivos de registro semanalmente 
semanalmente

# mantenha 4 semanas de backlogs 
rotacione 4

# crie arquivos de registro novos (vazios) após rotacionar os antigos 
criados

# ative esta opção se deseja que os arquivos de registro sejam compactados
#compactar

# As informações de rotação de registro de drop de pacotes RPM neste diretório 
incluem /etc/logrotate.d

# nenhum pacote possui lastlog ou wtmp - nós iremos rotacioná-los aqui 
#/var/log/wtmp { 
#    mensal 
#    criar 0664 root utmp 
#    rotacionar 1 
#}

# registros específicos de sistema também podem ser configurados aqui. 

logrotate é controlado pelo cron e é chamado diariamente por /etc/cron.daily/logrotate.

[Important]Importante

A opção create lê todas as configurações feitas pelo administrador em /etc/permissions*. Certifique-se de que não haja conflitos devido a modificações pessoais.

10.1.4. O comando locate

locate, um comando para localização rápida de arquivos, não está incluído no escopo padrão do software instalado. Se desejado, instale o pacote find-locate. O processo updatedb é iniciado automaticamente a cada noite ou aproximadamente 15 minutos após a inicialização do sistema.

10.1.5. O comando ulimit

Com o comando ulimit (user limits), é possível definir limites para o uso de recursos do sistema e fazer com que sejam exibidos. ulimit é particularmente útil para a limitação da memória disponível para aplicativos. Com ele, pode-se evitar que um aplicativo utilize muita memória, o que poderia travar o sistema.

O comando ulimit pode ser usado com várias opções. Para limitar o uso da memória, use as opções listadas na Tabela 10.1, “ulimit: Configuração de Recursos para o Usuário”.

Tabela 10.1. ulimit: Configuração de Recursos para o Usuário

-m

Tamanho máximo da memória física

-v

Tamanho máximo da memória virtual

-s

Tamanho máximo da pilha

-c

Tamanho máximo dos arquivos básicos

-a

Exibição de definição de limites

Entradas globais de sistema podem ser feitas em /etc/profile. Lá, habilite a criação de arquivos básicos, necessários para os programadores para depuração. Um usuário normal não pode aumentar os valores especificados em /etc/profile pelo administrador do sistema, mas pode fazer entradas especiais em ~/.bashrc.

Exemplo 10.4. ulimit: Configurações em ~/.bashrc

 
# limite de memória física: 
ulimit -m 98304
 
# limite de memória virtual: 
ulimit -v 98304 

As quantidades de memória devem ser especificadas em KB. Para obter informações mais detalhadas, consulte man bash.

[Important]Importante

Nem todos os shells suportam as diretivas ulimit. O PAM (por exemplo, pam_limits) oferece possibilidades abrangentes de ajustes se você depende de configurações abrangentes para essas restrições.

10.1.6. O comando free

O comando free é um pouco confuso se a sua meta é determinar a quantidade de memória RAM usada no momento. Essas informações podem ser encontradas em /proc/meminfo. Atualmente, os usuários com acesso a um sistema operacional moderno, como o Linux, não precisam se preocupar muito com memória. O conceito de RAM disponível surgiu antes da época do gerenciamento unificado de memória. O slogan memória livre é memória ruim se aplica bem ao Linux. Como resultado, o Linux sempre se esforçou para equilibrar caches externos sem realmente permitir memória livre ou sem uso.

Basicamente, o kernel não tem conhecimento direto de nenhum aplicativo ou dados de usuário. Em vez disso, ele gerencia aplicativos e dados de usuário em um cache de página. Se a memória diminuir, partes dele são gravadas na partição de troca ou em arquivos, dos quais podem ser lidas inicialmente com a ajuda do comando mmap (consulte man mmap).

O kernel também contém outros caches, como o cache slab, onde os caches usados para acesso a rede são armazenados. Isso pode explicar as diferenças entre os contadores em /proc/meminfo. A maioria deles (mas não todos) pode ser acessada via /proc/slabinfo.

10.1.7. O arquivo /etc/resolv.conf

A resolução de nome de domínio é tratada pelo arquivo /etc/resolv.conf. Consulte o Capítulo 20, Domain Name System (Sistema de Nomes de Domínio).

Este arquivo é atualizado pelo script /sbin/modify_resolvconf exclusivamente, e nenhum outro programa tem permissão para modificar diretamente o /etc/resolv.conf. Forçar esta regra é a única maneira de garantir que a configuração de rede do sistema e os arquivos relevantes sejam mantidos em um estado consistente.

10.1.8. Páginas de manual e de informações

Para alguns aplicativos GNU (como o tar), as páginas de manuais não são mais mantidas. Para esses comandos, use a opção --help para obter um rápido resumo das páginas de informações, que fornecem instruções mais detalhadas. O info é um sistema hipertexto do GNU. Leia uma introdução sobre este sistema digitando info info. As páginas de informações podem ser exibidas com Emacs ao se digitar emacs -f info ou diretamente em um console com info. Também é possível usar tkinfo, xinfo ou o sistema de ajuda do SUSE para exibir as páginas de informações.

10.1.9. Configurações para GNU Emacs

O GNU Emacs é um complexo ambiente de trabalho. As seções a seguir descrevem os arquivos de configuração processados quando o GNU Emacs é iniciado. Há mais informações em http://www.gnu.org/software/emacs/.

Na inicialização, o Emacs lê vários arquivos que contêm as configurações do usuário, administrador do sistema e distribuidor para personalização ou pré-configuração. O arquivo de inicialização ~/.emacs é instalado nos diretórios pessoais dos usuários individuais a partir de /etc/skel. O .emacs, por sua vez, lê o arquivo /etc/skel/.gnu-emacs. Para personalizar o programa, copie o arquivo .gnu-emacs para o diretório pessoal (com cp /etc/skel/.gnu-emacs ~/.gnu-emacs) e faça as configurações desejadas nesse diretório.

O .gnu-emacs define o arquivo ~/.gnu-emacs-custom como arquivo personalizado. Se os usuários fizerem as configurações com as opções personalizar no Emacs, as configurações serão salvas no arquivo ~/.gnu-emacs-custom.

Com o SUSE Linux, o pacote do emacs instala o arquivo site-start.el no diretório /usr/share/emacs/site-lisp. O arquivo site-start.el é carregado antes do arquivo de inicialização ~/.emacs. Entre outras coisas, o arquivo site-start.el assegura que os arquivos de configuração especial distribuídos com os pacotes de expansão do Emacs, como o psgml, sejam carregados automaticamente. Os arquivos de configuração deste tipo estão localizados em /usr/share/emacs/site-lisp, também, e sempre começam com o nome suse-start-. O administrador do sistema local pode especificar configurações globais do sistema no arquivo default.el.

Mais informações sobre esses arquivos estão disponíveis no arquivo de informações do Emacs em Init File: info:/emacs/InitFile. Informações sobre como desabilitar o carregamento desses arquivos, se necessário, também são fornecidas neste local.

Os componentes do Emacs são divididos em vários pacotes:

  • O pacote base emacs.

  • emacs-x11 (normalmente instalado): o programa com suporte X11.

  • emacs-nox: o programa sem suporte X11.

  • emacs-info: documentação online em formato info.

  • emacs-el: os arquivos de biblioteca não compilados em Emacs Lisp. Eles não são necessários em tempo de execução.

  • Numerosos pacotes de expansão podem ser instalados, se houver necessidade: emacs-auctex (para LaTeX), psgml (para SGML e XML), gnuserv (para operação de cliente e servidor) e outros.