Capítulo 10. Funciones especiales de SUSE Linux

Tabla de contenidos

10.1. Información acerca de paquetes especiales de software
10.2. Consolas virtuales
10.3. Distribución del teclado
10.4. Ajustes de idioma y país

Resumen

Este capítulo incluye información acerca de varios paquetes de software, las consolas virtuales y el formato del teclado. Se describen componentes de software como, por ejemplo, bash, cron, y logrotate, ya que han experimentado mejoras o cambios en las últimas versiones. Aunque dichos cambios sean pequeños o tengan una importancia menor, es posible que los usuarios deseen cambiar su comportamiento por defecto, ya que estos componentes están a menudo muy vinculados al sistema. El capítulo finaliza con un apartado sobre los ajustes regionales y de idioma (I18N y L10N).


10.1. Información acerca de paquetes especiales de software

Los programas bash, cron, logrotate, locate, ulimit y free, así como el archivo resolv.conf, revisten gran importancia, tanto para los administradores de los sistemas como para muchos usuarios. Las páginas de manual (Man) y las de información (Info) constituyen dos útiles fuentes de información sobre comandos, si bien a veces no están las dos disponibles. GNU Emacs es un editor de texto muy utilizado y con muchas opciones de configuración.

10.1.1. Paquete bash y /etc/profile

Bash es la shell por defecto de SUSE Linux. Cuando se utiliza como shell de inicio de sesión, lee varios archivos de inicialización y los procesa en el orden en el que aparecen en la lista.

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

En ~/.profile y en ~/.bashrc se pueden aplicar ajustes personalizados. Para garantizar que estos archivos se procesen correctamente, es necesario copiar los ajustes básicos desde /etc/skel/.profile o /etc/skel/.bashrc en el directorio personal del usuario. Se recomienda copiar los ajustes de /etc/skel tras una actualización. Ejecute los siguientes comandos shell para evitar que se pierdan ajustes personales:

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

A continuación, copie los ajustes personales otra vez de los archivos *.old.

10.1.2. Paquete cron

Si desea ejecutar comandos de forma regular y automática en segundo plano a horas predefinidas, cron es la herramienta tradicional que utilizar. Funciona mediante tablas horarias con un formato especial para ello. Algunas de estas tablas acompañan al sistema y, si así lo desean o si es necesario, los usuarios pueden escribir sus propias tablas.

Las tablas cron se encuentran en /var/spool/cron/tabs. /etc/crontab sirve como tabla cron para todo el sistema. Escriba el nombre de usuario para ejecutar el comando directamente después de la tabla horaria y antes del comando. En el Ejemplo 10.1, “Entrada en /etc/crontab”, se ha introducido Root. Las tablas específicas del paquete, ubicadas en /etc/cron.d, comparten el mismo formato. Consulte la página Man sobre cron (man cron).

Ejemplo 10.1. Entrada en /etc/crontab

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

No es posible editar /etc/crontab ejecutando el comando crontab -e. Este archivo se debe cargar directamente en un editor, después modificarse y finalmente guardarse.

Hay varios paquetes que instalan guiones shell en los directorios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y /etc/cron.monthly, cuya ejecución se controla a través de /usr/lib/cron/run-crons. /usr/lib/cron/run-crons se ejecuta cada 15 minutos desde la tabla principal (/etc/crontab). Esto garantiza que los procesos que se hayan podido descuidar puedan ejecutarse en el momento adecuado.

Para ejecutar los guiones hourly (cada hora), daily (cada día), u otros guiones de mantenimiento periódicos en momentos personalizados, elimine los archivos de marca horaria de forma regular mediante entradas /etc/crontab. Consulte el Ejemplo 10.2, “/etc/crontab: eliminación de archivos de marca horaria”, donde se elimina el guión hourly (cada hora) antes de cada hora en punto y el guión daily (cada día) una vez al día a las 2:14 a.m., etc.

Ejemplo 10.2. /etc/crontab: eliminación de archivos de marca horaria

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

Los trabajos de mantenimiento del sistema diarios se han distribuido entre varios guiones para conseguir una mayor claridad. Estos trabajos están dentro del paquete aaa_base. /etc/cron.daily contiene, por ejemplo, los componentes suse.de-backup-rpmdb, suse.de-clean-tmp o suse.de-cron-local.

10.1.3. Archivos de registro: paquete logrotate

Ciertos servicios del sistema (daemons), junto con el núcleo en sí, registran en archivos de registro y de forma regular el estado del sistema y eventos concretos. Así, el administrador puede comprobar con regularidad el estado del sistema en un momento concreto, reconocer errores o funciones defectuosas y repararlos con precisión. Estos archivos de registro generalmente se almacenan en /var/log, tal y como especifica el estándar FHS, y van creciendo cada día. El paquete logrotate ayuda a controlar el crecimiento de estos archivos.

Configure logrotate con el archivo /etc/logrotate.conf. En concreto, la especificación include (incluir) configura principalmente los archivos adicionales que se deben leer. SUSE Linux garantizará que los programas que generan archivos de registro instalen archivos de configuración individuales en /etc/logrotate.d. Por ejemplo, estos programas incluyen los paquetes apache2 (/etc/logrotate.d/apache2) y syslogd (/etc/logrotate.d/syslog).

Ejemplo 10.3. Ejemplo 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 se controla mediante cron y se ejecuta a diario a través de /etc/cron.daily/logrotate.

[Important]Importante

La opción create (crear) lee todos los ajustes realizados por el administrador en /etc/permissions*. Asegúrese de que no se produzcan conflictos a raíz de posibles modificaciones personales.

10.1.4. Comando locate

El comando locate, que permite buscar archivos de forma rápida, no está incluido en el ámbito estándar del software instalado. Si lo desea, instale el paquete find-locate. El proceso updatedb se inicia automáticamente cada noche o alrededor de 15 minutos después de iniciar el sistema.

10.1.5. Comando ulimit

El comando ulimit (límites de usuario) permite definir límites para el uso de recursos del sistema, así como para que se puedan mostrar estos recursos. El comando ulimit resulta especialmente útil para limitar la memoria disponible para las distintas aplicaciones. Con este comando se puede hacer que una aplicación no utilice demasiada memoria por sí sola, una situación que podría detener el sistema.

ulimit se puede utilizar con varias opciones. Para limitar el uso de memoria, utilice las opciones que se muestran en la Tabla 10.1, “ulimit: definición de recursos para el usuario”.

Tabla 10.1. ulimit: definición de recursos para el usuario

-m

Tamaño máximo de memoria física

-v

Tamaño máximo de memoria virtual

-s

Tamaño máximo del stack

-c

Tamaño máximo de los archivos de núcleo central

-a

Visualización de límites

En /etc/profile se pueden definir entradas para todo el sistema. Habilite aquí la creación de archivos de núcleo central que necesitan los programadores para poder realizar operaciones de depuración. Un usuario normal no puede aumentar los valores que haya especificado el administrador del sistema en /etc/profile, pero puede crear entradas especiales en ~/.bashrc.

Ejemplo 10.4. ulimit: ajustes en ~/.bashrc

# Limits of physical memory:
ulimit -m 98304
 
# Limits of virtual memory:
ulimit -v 98304

La cantidad de memoria se debe especificar en KB. Para obtener más información, consulte man bash.

[Important]Importante

No todas las shells admiten las directivas ulimit. PAM (por ejemplo pam_limits) ofrece un completo elenco de posibilidades de ajuste en caso de que se deban abarcar ajustes para estas restricciones.

10.1.6. Comando free

El comando free resulta en cierta manera engañoso si el objetivo es saber cuánta memoria RAM se está utilizando en esos momentos. Esa información se puede consultar en /proc/meminfo. En la actualidad, los usuarios con acceso a un sistema operativo moderno, como Linux, no deberían necesitar preocuparse demasiado sobre el uso de memoria. El concepto de RAM disponible se remonta a los días anteriores a la gestión de la memoria unificada. La frase memoria libre es memoria mala se aplica también en Linux. Así, Linux se ha esforzado siempre en equilibrar las cachés sin permitir que haya memoria libre o no utilizada.

Básicamente, el núcleo no tiene conocimiento directo de ninguna aplicación ni de ningún dato del usuario, sino que gestiona las aplicaciones y los datos del usuario en una caché de páginas. Si la memoria se queda corta, se escriben partes de ella en la partición de intercambio o en archivos desde los cuales se podrá leer con ayuda del comando mmap (consulte man mmap).

El núcleo también contiene otras cachés, como la caché de tablas, donde se almacenan la cachés utilizadas para acceder a la red. Esto puede explicar las diferencias entre los contadores en /proc/meminfo. A la mayoría de ellas, pero no a todas, se puede acceder a través de /proc/slabinfo.

10.1.7. Archivo /etc/resolv.conf

La resolución del nombre de dominio se gestiona a través del archivo /etc/resolv.conf. Consulte el Capítulo 20, Sistema de nombres de dominio (DNS).

Este archivo se actualiza con el guión /sbin/modify_resolvconf de forma exclusiva, ningún otro programa dispone de permiso para modificar /etc/resolv.conf directamente. Aplicar esta regla es la única manera de garantizar que la configuración de red del sistema y los archivos relevantes se guardan en un estado coherente.

10.1.8. Páginas Man y páginas Info

Para algunas aplicaciones de GNU (como tar), las páginas Man correspondientes han dejado de publicarse. Para estos comandos, utilice la opción --help y obtendrá una descripción general de las páginas Info, las cuales proporcionan instrucciones más detalladas a través del sistema de hipertexto de GNU. Lea una introducción a este sistema escribiendo info info. Las páginas Info se pueden ver con Emacs escribiendo emacs -f info, o directamente en una consola con info. También podrá ver páginas Info con tkinfo, xinfo o el sistema de ayuda de SUSE.

10.1.9. Ajustes para GNU Emacs

GNU Emacs es un entorno de trabajo complejo. En las siguientes secciones se describen los archivos de configuración que se procesan al iniciar GNU Emacs. Encontrará más información en http://www.gnu.org/software/emacs/.

Al iniciarse, Emacs lee varios archivos que contienen los ajustes para el usuario, el administrador del sistema y el distribuidor de personalización o configuración previa. El archivo de inicio ~/.emacs se instala en los directorios personales de cada usuario desde /etc/skel. .emacs, a su vez, lee el archivo /etc/skel/.gnu-emacs. Para personalizar el programa, copie .gnu-emacs en el directorio personal (con cp /etc/skel/.gnu-emacs ~/.gnu-emacs) y aplique allí los ajustes que desee.

.gnu-emacs define el archivo ~/.gnu-emacs-custom como custom-file (archivo personalizado). Si el usuario desea efectuar ajustes con las opciones customize (personalizar) en Emacs, dichos ajustes se guardarán en ~/.gnu-emacs-custom.

Con SUSE Linux, el paquete emacs instala el archivo site-start.el en el directorio /usr/share/emacs/site-lisp. El archivo site-start.el se carga antes que el archivo de inicio ~/.emacs. Entre otros aspectos, site-start.el se ocupa de que los archivos de configuración distribuidos con los paquetes complementarios de Emacs como, por ejemplo, psgml, se carguen automáticamente. Tales archivos de configuración se encuentran también en /usr/share/emacs/site-lisp y comienzan siempre con suse-start-. El administrador local del sistema puede definir ajustes de configuración válidos para todo el sistema con default.el.

Encontrará más información acerca de estos archivos en el archivo de información de Emacs en Init File: info:/emacs/InitFile. Aquí también encontrará información acerca de cómo evitar la carga de estos archivos cuando sea necesario.

Los componentes de Emacs están distribuidos en varios paquetes:

  • Paquete básico emacs.

  • emacs-x11: se instala normalmente e incluye compatibilidad con X11.

  • emacs-nox: programa sin compatibilidad con X11.

  • emacs-info: documentación en línea en formato info.

  • emacs-el: contiene archivos de bibliotecas sin compilar en Emacs Lisp. No son necesarios para el tiempo de ejecución.

  • Se pueden instalar numerosos paquetes complementarios si es necesario: emacs-auctex (para LaTeX), psgml (para SGML y XML), gnuserv (para el uso del cliente y el servidor), etc.