Recursos especiais do sistema

Sumário

11.1. Informações sobre pacotes de software especiais
11.2. Consoles virtuais
11.3. Mapeamento de teclado
11.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 do 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).

Informações sobre pacotes de software especiais

Os programas bash, cron, logrotate, locate, ulimit e free são muito importantes para os administradores de sistema e para muitos 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.

O pacote bash e /etc/profile

Bash é o shell de sistema padrão. 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

Faça configurações personalizadas em ~/.profile ou ~/.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.

O pacote cron

Se você deseja executar comandos de maneira regular e automática em segundo plano em horários predefinidos, cron é a ferramenta a ser usada. O cron é orientado por tabelas de horários especialmente formatadas. 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. /etc/crontab atua como uma tabela cron para todo o sistema. Digite o nome de usuário para executar o comando diretamente após a tabela de tempo e antes do comando. No Exemplo 11.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 11.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. Esse arquivo deve ser carregado diretamente em um editor, modificado e 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 11.2, “/etc/crontab: remova arquivos de marcação de horário”, que remove a opção por hora antes de cada hora cheia, a opção diário uma vez ao dia às 2h:14 etc.).

Exemplo 11.2. /etc/crontab: remova arquivos de marcação de horário

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

Ou você pode definir DAILY_TIME em /etc/sysconfig/cron com o horário de início de cron.daily. A configuração de MAX_NOT_RUN assegura que as tarefas diárias sejam acionadas para execução, mesmo se o usuário não ligou o computador no DAILY_TIME especificado por um período mais longo. O valor máximo de MAX_NOT_RUN é 14 dias.

Os trabalhos de manutenção diária de sistema são 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.

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. Dessa 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 diariamente. 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. Programas que produzem arquivos de registro instalam arquivos de configuração individuais em /etc/logrotate.d. Por exemplo, tais programas acompanham os pacotes, como apache2 (/etc/logrotate.d/apache2) e syslogd (/etc/logrotate.d/syslog).

Exemplo 11.3. Exemplo para /etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own lastlog or wtmp - we'll rotate them here
#/var/log/wtmp {
#    monthly
#    create 0664 root utmp
#    rotate 1
#}

# system-specific logs may be also be configured here.

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

[Important]

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.

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 findutils-locate. O processo updatedb é iniciado automaticamente a cada noite ou aproximadamente 15 minutos após a inicialização do sistema.

O comando ulimit

Com o comando ulimit (limites do usuário), é possível definir limites para o uso dos recursos do sistema e fazer com que sejam exibidos. O ulimit é especialmente útil para limitar a memória disponível para os aplicativos. Com isso, um aplicativo pode ser impedido de absorver recursos em demasia do sistema e deixar o sistema operacional lento ou até travá-lo.

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 11.1, “ulimit: definindo recursos para o usuário”.

Tabela 11.1. ulimit: definindo recursos para o usuário

-m

O tamanho máximo do conjunto residente

-v

A quantidade máxima de memória virtual disponível para o shell

-s

O tamanho máximo da pilha

-c

O tamanho máximo dos arquivos básicos criados

-a

Todos os limites atuais são informados


Entradas globais de sistema podem ser feitas em /etc/profile. Lá, habilite a criação de arquivos básicos (necessários aos 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 11.4. ulimit: configurações em ~/.bashrc

# Limits maximum resident set size (physical memory):
ulimit -m 98304
 
# Limits of virtual memory:
ulimit -v 98304

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

[Important]

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.

O comando free

O comando free é um pouco confuso se a sua meta é determinar a quantidade de memória RAM usada no momento. Essa informação pode ser encontrada 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.

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 uma breve visão geral das páginas de informações, que fornecem instruções mais detalhadas. O info é um sistema de hipertexto do GNU. Leia uma introdução sobre esse sistema digitando infoinfo. As páginas de informações podem ser exibidas com Emacs digitando emacs -f info ou diretamente em um console, com info. Também é possível usar tkinfo, xinfo ou o sistema de ajuda do para exibir as páginas de informações.

Selecionando páginas de manual usando o comando man

Com man página_de_manual, normalmente você exibe uma página de manual para leitura instantânea. Mas se existir uma página de manual com o mesmo nome em seções diferentes, man perguntará ao usuário a seção cuja página deverá ficar visível. O usuário então deverá responder digitando a seção.

Se desejar retornar ao comportamento anterior, defina MAN_POSIXLY_CORRECT=1 em um arquivo de inicialização de shell como ~/.bashrc.

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 por meio 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 tiverem feito as configurações com as opções personalizar no Emacs, as configurações serão gravadas no arquivo ~/.gnu-emacs-custom.

Com o SUSE Linux Enterprise Desktop, 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 também estão localizados em /usr/share/emacs/site-lisp, 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 (geralmente instalado): o programa com suporte para X11.

  • emacs-nox: o programa sem suporte para 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 complementares podem ser instalados se necessário: emacs-auctex (LaTeX), psgml (SGML e XML), gnuserv (operação cliente e servidor) e outros.