Mantenimiento del sistema
Requisitos y objetivos
1. Requisitos
Los conocimientos necesarios para la certificación LPIC-1:
Edición de archivos.
Comandos de gestión de directorios y archivos.
Particiones y sistemas de archivos.
2. Objetivos
Al final de este capítulo, deberá poder:
Compilar e instalar un programa ejecutable a partir de su código fuente.
Guardar y restaurar archivos, directorios y sistemas de archivos.
Implementar herramientas de comunicación para mantener informados a los usuarios de los eventos relativos al sistema.
Mantenimiento del sistema
Este tema está dividido en tres partes con pesos diferentes.
1. Compilación e instalación de programas a partir de sus archivos de código fuente
Peso |
2 |
Objetivos |
Compilar e instalar un programa ejecutable a partir de su código fuente. Este objetivo incluye la extracción de código fuente desde un archivo comprimido. |
a. Competencias principales
-
Extraer los archivos de código fuente desde los archivos generados por herramientas estándar de compresión.
-
Comprender el uso básico del comando make para compilar programas.
-
Utilizar argumentos en un script de configuración.
-
Conocer las ubicaciones por defecto de los archivos de código fuente.
b. Elementos empleados
-
/usr/src/
-
gunzip
-
gzip
-
bzip2
-
xz
-
tar
-
configure
-
make
-
uname
-
install
-
patch
2. Respaldos
Peso |
3 |
Objetivos |
Utilizar herramientas del sistema para respaldar datos importantes. |
a. Competencias principales
-
Conocer los directorios que se deben incluir en los respaldos.
-
Conocimientos de base de las soluciones de respaldo de red como Amanda, Bacula, Bareos y BackupPC.
-
Conocer las ventajas y desventajas de los soportes de respaldo, bandas, CD grabables, discos y otros tipos de soportes.
-
Efectuar respaldos manuales y parciales.
-
Comprobar la integridad de los respaldos.
-
Efectuar restauraciones completas y parciales.
b. Elementos empleados
-
/bin/sh
-
dd
-
tar
-
/dev/st* y /dev/nst*
-
mt
-
rsync
3. Mantener informados a los usuarios de eventos...
Compilación e instalación de programas a partir de las fuentes
Las distribuciones Linux disponen de mecanismos que se ocupan de la instalación de paquetes de programas a partir de los repositorios (repositories) disponibles en la red. Esto permite una gestión completa de los elementos de software implementados en un sistema: listado, actualización y desinstalación.
Sin embargo, a veces es necesario instalar un programa a partir de sus archivos de código fuente, copiando estos últimos en el sistema local y compilándolos para poder generar los programas ejecutables correspondientes.
Este procedimiento solo debe ser utilizado como último recurso, cuando no exista ningún paquete para la distribución que estamos utilizando que contenga el programa que se quiere instalar o la versión deseada. Este tipo de instalación no será asumida por el gestor de aplicaciones estándar, que no conservará ninguna huella del elemento instalado y no podrá ni actualizarlo ni desinstalarlo.
También puede ser necesario aplicar parches (patches) a algunos programas instalados, en particular si son relativos a problemas de seguridad.
1. Instalación a partir de los archivos de código fuente
Para facilitar la instalación de una aplicación a partir de sus archivos de código fuente, un procedimiento estándar de compilación ha sido creado en el marco del proyecto GNU (Gnu is Not Unix). Este procedimiento uniformiza la operación para los diferentes programas de código libre y permite a usuarios que no tengan el perfil de programador poder hacerlo.
Este tipo de instalación generalmente requiere que las herramientas de desarrollo estén presentes en el sistema (paquete de software "build-essential" para distribuciones de tipo Debian, grupo de software "Development tools" para distribuciones de tipo Red Hat).
a. Búsqueda y descarga del código fuente
Generalmente, los archivos de código fuente de una aplicación pueden descargarse, bajo la forma de un archivo comprimido (tarball file).
La primera etapa consiste en descargar este archivo en el directorio donde se vaya a efectuar la compilación.
Después hay que descomprimir y restaurar el archivo, con el o los comandos estándares que soportan los formatos...
Respaldos
El respaldo de los sistemas y de los datos que se incluyen en ellos es una de las responsabilidades del administrador del sistema. Los procedimientos que se tienen que implementar y la elección de las herramientas dependen de numerosos factores, que pueden ser a menudo complejos.
En el marco de la certificación LPIC2, vamos a estudiar diferentes comandos y herramientas de Linux que permiten efectuar respaldos y restauraciones, totales o parciales, y también vamos a evocar algunas aplicaciones especializadas en este ámbito.
1. ¿ Qué hay que respaldar ?
Los respaldos deben incluir diferentes elementos: los datos de los usuarios, los datos de las aplicaciones (archivos y bases de datos), los archivos ejecutables y de configuración de las aplicaciones instaladas y los archivos ejecutables y de configuración del sistema operativo. Estos distintos elementos no necesitan las mismas estrategias de respaldo (frecuencia, tipo de respaldo y soportes que se deberán utilizar) ni las mismas herramientas de respaldo.
a. Sistemas de archivos
La mayoría de los sistemas Linux estructuran su arborescencia global de directorios y de archivos asociando diferentes sistemas de archivos. Una de las ventajas de esta organización es permitir respaldos autónomos de los diferentes sistemas de archivos. Podemos, prácticamente, desmontarlos todos y respaldarlos individualmente. Si se encuentran en volúmenes lógicos LVM o en sistemas de archivos que lo permiten, se puede usar la técnica de instantáneas (snapshots) para salvaguardar su estado en el momento del respaldo.
Sin embargo, algunos directorios necesarios para el arranque del sistema no pueden estar situados en los sistemas de archivos que no se encuentren en la raíz. Este es el caso particular del directorio /etc, que contiene archivos de configuraciones esenciales, y el directorio /bin que contiene ejecutables indispensables para inicializar el sistema (por ejemplo, el programa shell /bin/sh). Por lo tanto, no podemos desmontar el sistema de archivos que los contiene para hacer un respaldo.
b. Directorios
Los diferentes directorios en la raíz del sistema tienen que ser o no respaldados, y los que lo necesiten pueden serlo con una frecuencia diferente. He aquí una lista de los principales directorios y sus características de respaldo típicas:...
Informar a los usuarios
En este punto explicamos los diferentes medios de comunicación que permiten al administrador del sistema informar a los usuarios conectados, o a los que quieran conectarse, con respecto a elementos o eventos del sistema.
Estas herramientas se utilizan cada vez menos, porque la mayoría de los sistemas funcionan en modo cliente/servidor y por lo tanto hay pocos usuarios conectados a un servidor a través de un terminal.
1. Los archivos /etc/issue y /etc/issue.net
El contenido de esos archivos se muestra en la pantalla del terminal antes de la conexión del usuario.
En los terminales locales de la máquina (incluyendo las consolas virtuales) se muestra el contenido de /etc/issue antes de la solicitud de identificación. Este archivo puede contener secuencias de caracteres que tengan un significado particular, dentro de las cuales:
\d |
Fecha. |
\s |
Nombre del sistema. |
\n |
Nombre de red del sistema. |
\r |
Versión del sistema. |
Se muestra el contenido de /etc/issue.net, antes de la solicitud de identificación, en los terminales conectados a través de telnet. No obstante, se desaconseja encarecidamente el uso de ese protocolo por razones de seguridad.
Por defecto, las conexiones a través de ssh no muestran el contenido de ese archivo. Se puede modificar la configuración del servidor ssh para que use ese archivo. Para ello hay que modificar la línea "Banner" del archivo de configuración de ssh, /etc/ssh/sshd_config:
Banner /etc/issue.net
Después habrá que reiniciar el servicio sshd.
Desafortunadamente, el servidor sshd no interpreta las secuencias especiales del archivo issue.net.
Ejemplo
Se implementa un archivo de encabezado para las conexiones ssh en el servidor srvrh RHEL 8.5:
vi /etc/issue.net
Bienvenido al servidor srvrh (RHEL 8.5).
El acceso está reservado a personas autorizadas.
vi /etc/ssh/sshd_config
[...]
#Banner none
Banner /etc/issue.net
[...]
Se reinicia el servidor sshd:
systemctl reload sshd
Nos conectamos al servidor srvrh RHEL 8.5 desde un sistema remoto:
ssh srvrh RHEL...
Validación de lo aprendido: preguntas/respuestas
Responda a estas preguntas abiertas, parecidas a las que le harán en el examen de la certificación, pero estas últimas lo serán de tipo test o pidiéndole una respuesta corta que introducirá mediante el teclado.
1. Preguntas
1 ¿Qué comando permite restaurar el archivo comprimido myprog.tar.bz2?
2 ¿Qué comando permite obtener información acerca del sistema local, como por ejemplo el tipo de sistema instalado y la versión del núcleo?
3 Durante una instalación a partir de archivos de código fuente, ¿qué comando puede generar el archivo Makefile?
4 Durante una instalación a partir de archivos de código fuente, ¿cómo se puede limpiar el directorio de compilación de los archivos generados?
5 ¿Se debe respaldar el directorio /dev?
6 ¿Cuál es la ventaja que representa el comando rsync respecto a una copia entre sistemas a través de ssh (scp)?
7 ¿Por qué hay que restaurar un respaldo de nivel 0 antes de un respaldo de nivel 1?
8 ¿Qué comando permite copiar un disco duro en otro disco duro?
9 ¿Qué opción permite hacer un listado del contenido de un archivo comprimido TAR sin restaurarlo?
10 ¿Cuál es la diferencia entre los archivos especiales /dev/st0 y /dev/nst0...
Trabajos prácticos
Aquí se proponen ejercicios para implementar algunos de los puntos abordados en el capítulo. En cada uno de ellos hay que adaptar un ejemplo comentado de la realización del ejercicio, a la configuración de sus sistemas.
1. Instalación de una aplicación a partir de los archivos de código fuente
Se decide instalar un juego en modo semigráfico, open source, a partir de sus archivos de código fuente, para ponerlo a disposición de los usuarios.
Comandos y archivos útiles
-
wget
-
tar
-
make
Etapas
1. |
Descargue en un sistema Linux el archivo comprimido de los archivos de código fuente del programa nsnake, una aplicación libre de juegos en modo semi gráfico. Se puede encontrar en la URL siguiente: https://sourceforge.net/projects/nsnake/files/GNU-Linux/nsnake-3.0.1.tar.gz |
2. |
Descomprima el archivo en un directorio de conexión de usuario. |
3. |
Instale la aplicación a partir de los archivos de código fuente. Compruebe su funcionamiento. |
Resumen de los comandos y resultados en pantalla
1. |
Descargue en un sistema Linux el archivo comprimido de los archivos de código fuente del programa nsnake, una aplicación libre de juegos en modo semigráfico. Se puede encontrar en la URL siguiente: https://sourceforge.net/projects/nsnake/files/GNU-Linux/nsnake-3.0.1.tar.gz |
Decidimos instalar la aplicación en el servidor srvdebian (distribution Debian 11), con la cuenta de usuario pba.
Usamos el comando wget para descargar el archivo comprimido en cuestión:
pba@srvdebian:~$ wget https://sourceforge.net/projects/nsnake/files/
GNU-Linux/nsnake-3.0.1.tar.gz
--2022-08-29 15:30:47-- https://sourceforge.net/projects/nsnake/files/GNU-Linux/nsnake-
3.0.1.tar.gz
Resolviendo sourceforge.net (sourceforge.net)... 172.64.153.13, 104.18.34.243
Conectando con sourceforge.net (sourceforge.net)[172.64.153.13]:443... conectado.
Petición HTTP enviada, esperando respuesta... 301 Moved Permanently
Localización: https://sourceforge.net/projects/nsnake/files/GNU-Linux/nsnake-3.0.1.tar.gz/ [
siguiendo]
--2022-08-29 15:30:47-- https://sourceforge.net/projects/nsnake/files/GNU-Linux/nsnake-
3.0.1.tar.gz/
Reutilizando la conexión con sourceforge.net:443.
Petición HTTP enviada, esperando respuesta... 301 Moved Permanently
Localización:...