Академический Документы
Профессиональный Документы
Культура Документы
NIVEL INTERMEDIO
Manual de usuario
13 de Junio de 2018
Términos de Confidencialidad
HISTORIAL DE VERSIONES
960067641
informes@atp.com.pe
www.atp.com.pe
3
CONTENIDO
1. INTRODUCCIÓN .................................................................................... 6
2. CAPÍTULO I - MONITOREO Y MANEJO DE PROCESOS EN LINUX ......... 7
2.1. Procesos en Linux .................................................................................... 7
2.1.1. ¿QUÉ ES UN PROCESO? .............................................................................. 7
2.1.2. ESTADOS DE UN PROCESO ......................................................................... 7
2.1.3. LISTANDO PROCESOS................................................................................. 8
2.2. Controlando tareas ................................................................................... 9
2.2.1. EJECUTANDO TAREAS EN SEGUNDO PLANO ............................................... 10
2.3. Matando procesos .................................................................................. 12
2.3.1. CONTROL DE PROCESOS USANDO SEÑALES............................................... 12
2.3.2. COMANDO kill .......................................................................................... 13
2.3.3. COMANDO killall ....................................................................................... 13
2.3.4. COMANDO pkill......................................................................................... 13
2.4. Monitoreo de procesos ........................................................................... 14
2.4.1. LOAD AVERAGE ........................................................................................ 14
2.4.2. COMANDO top.......................................................................................... 15
2.5. Práctica de capitulo ................................................................................ 17
3. CONTROL DE SERVICIOS .................................................................... 18
3.1. Introducción a systemd .......................................................................... 18
3.2. Listando servicios con systemctl .............................................................. 19
3.3. Control de servicios de sistema con systemcl ........................................... 20
3.4. Habilitación de servicios y demonios para inicio automático ...................... 22
3.5. Resumen de comandos systemcl ............................................................. 22
3.6. Administración de niveles de ejecución, systemd ...................................... 23
3.7. Práctica de capítulo ................................................................................ 26
4. ANÁLISIS DE LOGS ............................................................................. 27
4.1. Arquitectura de sistemas de logs ............................................................. 27
4.2. Verificación de logs de sistema ............................................................... 28
4.2.1. ARCHIVOS SYSLOG................................................................................... 28
4.2.2. ROTACIÓN DE ARCHIVOS DE LOG ............................................................. 28
4.2.3. ANÁLISIS DE ENTRADAS SYSLOG .............................................................. 29
4.2.4. MONITOREO DE LOGS MEDIANTE EL COMMANDO TAIL .............................. 29
4.3. Entradas del journal systemd .................................................................. 30
4.3.1. COMANDO JOURNACTL ............................................................................. 30
4.4. Ajuste del tiempo del sistema ................................................................. 33
4.4.1. CONFIGURAR HORA LOCAL Y ZONA DE TIEMPO ......................................... 33
4.4.2. CONFIGURANDO Y MONITOREANDO CHRONYD.......................................... 34
4.5. Práctica de capítulo ................................................................................ 36
5. MANEJO DE CONFIGURACIONES DE RED ........................................... 37
960067641
informes@atp.com.pe
www.atp.com.pe
4
960067641
informes@atp.com.pe
www.atp.com.pe
5
960067641
informes@atp.com.pe
www.atp.com.pe
6
1. INTRODUCCIÓN
El presente documento detalla los temas tratados en el curso “Administración GNU/Linux – Nivel
avanzado”, el cual presenta de manera clara los procedimientos usados para lograr de manera
satisfactoria lo propuesto.
960067641
informes@atp.com.pe
www.atp.com.pe
7
Un proceso es una instancia en ejecución de un programa ejecutable que fue lanzado. Un proceso
consiste en:
960067641
informes@atp.com.pe
www.atp.com.pe
8
El comando ps se usa para enumerar los procesos actuales. El comando puede proporcionar
información detallada del proceso, que incluye.
960067641
informes@atp.com.pe
www.atp.com.pe
9
De forma predeterminada, ps sin opciones selecciona todos los procesos con el mismo ID de usuario
(UID) que el usuario actual y asociado con el mismo terminal donde se invocó ps.
• Procesos entre paréntesis (usualmente en la parte superior) son hilos del núcleo reprogramados.
• El comando ps muestra una sola vez la salida correspondiente al momento que se la invoco.
El control de trabajos es una función del Shell de comandos que permite que una sola instancia de
Shell ejecute y administre varios comandos. Sin el control de tareas, un Shell padre bifurca un proceso
hijo para ejecutar un comando, durmiendo hasta que el proceso hijo finalice. Cuando el indicador del
Shell vuelve a aparecer, el Shell principal ha regresado. Con el control de tareas, los comandos se
pueden suspender, reanudar y ejecutar selectivamente asincrónicamente, lo que permite que el Shell
regrese para comandos adicionales mientras se ejecutan procesos secundarios.
Un proceso en primer plano es un comando que se ejecuta en una ventana de terminal del dispositivo
del terminal (tty) la cual tiene control del proceso. Los procesos en primer plano reciben entradas
960067641
informes@atp.com.pe
www.atp.com.pe
10
generadas por teclado, señales y una actualización para leer o escribir en el terminal (por ejemplo, a
través de stdin y stdout).
Se crea una sesión de proceso cuando un terminal o consola se abre por primera vez (por ejemplo, al
iniciar sesión o al invocar una nueva instancia de Terminal). Todos los procesos (por ejemplo, el
primer Shell de comandos, sus elementos secundarios y las tuberías) iniciados desde ese terminal
comparten el mismo ID de sesión. Dentro de una sesión, solo un proceso puede estar en primer plano
a la vez.
Un proceso en segundo plano (background) es iniciado sin que necesite de control desde la terminal,
porque no necesita interacción desde ella. En una lista de ps, dichos procesos (por ejemplo, daemons
de servicio y subprocesos de procesos del kernel) muestran un signo de interrogación (?) En la
columna TTY. Los procesos de segundo plano que (incorrectamente) intentan leer o escribir en el
terminal pueden ser suspendidos.
Cualquier comando se puede iniciar en segundo plano al agregar el signo de ampersand (&) a la línea
de comando. El Shell bash muestra un número de trabajo (exclusivo de la sesión) y el PID del nuevo
proceso hijo. El shell de comandos no espera al proceso secundario y vuelve a mostrar el prompt del
shell.
el signo de ampersand (&) enviará a segundo plano solo el último comando de una sentencia con
tuberías de concatenación (pipeline), a menos que el conjunto de comandos esté rodeado de
paréntesis. El PID devuelto proviene del último proceso de la tubería. En el ejemplo, al haber
paréntesis en todo el comando, todos los procesos en la tubería son ahora miembros del mismo
trabajo.
Las tareas que fueron ejecutadas en segundo plano, son mostradas a través del comando jobs.
Los trabajos en segundo plano pueden volver a conectarse al terminal de control al ponerse en primer
plano utilizando el comando fg con la ID del trabajo (% del número de trabajo).
[root@labrhel7 ~]# fg %1
sleep 1000
960067641
informes@atp.com.pe
www.atp.com.pe
11
[root@labrhel7 ~]# fg %1
sleep 1000
^Z
[1]+ Detenido sleep 1000
[root@labrhel7 ~]#
La suspensión tiene efecto de inmediato. El trabajo se coloca en segundo plano. La salida pendiente y
el tipo de teclado se descartan.
La opción ps j muestra la información del trabajo, incluido el Shell de comando inicial de cada sesión.
Como el comando de ejemplo de suspensión está actualmente suspendido, el indicador de estado que
se muestra es T.
[root@labrhel7 ~]# ps j
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1 623 623 623 tty1 623 Ss+ 0 0:00 /sbin/agetty --noclear
tty1 linux
1019 1105 1105 1105 pts/0 1407 Ss 0 0:00 -bash
1105 1404 1404 1105 pts/0 1407 T 0 0:00 sleep 1000
1105 1405 1405 1105 pts/0 1407 S 0 0:00 ping 8.8.8.8
1105 1407 1407 1105 pts/0 1407 R+ 0 0:00 ps j
960067641
informes@atp.com.pe
www.atp.com.pe
12
Una señal es una interrupción de software entregada a un proceso. Las señales informan eventos a un
programa en ejecución. Los eventos que generan una señal pueden ser un error, un evento externo
(por ejemplo, una solicitud de 1/0 o un temporizador caducado) o una solicitud explícita (por ejemplo,
el uso de un comando de envío de señal o una secuencia de teclado).
La siguiente tabla enumera las señales fundamentales utilizadas por los administradores del sistema
para la administración rutinaria del proceso. Es posible consultar las señales por su nombre corto
(HUP) o propio (SIGHUP).
960067641
informes@atp.com.pe
www.atp.com.pe
13
El comando kill envía una señal a un proceso usando para ello su PID. A pesar de su nombre, el
comando kill puede usarse para enviar cualquier señal, no solo aquellas para terminar programas.
El comando killall sirve para enviar una señal a uno o más procesos que coincidan con los criterios
de selección, como un nombre de comando, procesos de un usuario específico o todos los procesos
del sistema.
El comando pkill, así como killall, puede señalar múltiples procesos. pkill utiliza criterios de selección
más avanzados, que pueden incluir combinaciones de:
960067641
informes@atp.com.pe
www.atp.com.pe
14
El kernel de Linux calcula una métrica promedio de carga como una media móvil exponencial de la
carga, un recuento acumulativo de CPU de solicitudes de recursos del sistema activo.
• Las solicitudes activas se cuentan a partir de colas por CPU para ejecutar subprocesos e hilos en
espera de I/O, ya que el kernel sigue la actividad del recurso de proceso y los cambios de estado
de proceso correspondientes.
• El número de carga es una rutina de cálculo que se ejecuta cada cinco segundos de forma
predeterminada. que acumula y promedia las solicitudes activas en un solo número para todas las
CPU.
• El promedio móvil exponencial es una fórmula matemática para suavizar los altos y bajos de los
datos de tendencia, aumentar la importancia de la actividad actual y disminuir la calidad de los
datos.
El promedio de carga representa la carga percibida del sistema durante un período de tiempo. Linux
implementa el cálculo del promedio de carga como una representación de los tiempos de espera del
servicio esperado, no solo para la CPU sino también para el disco y la red I/O.
• Linux cuenta no solo los procesos, sino los hilos individualmente, como tareas separadas. Colas de
solicitud de CPU para ejecutar subprocesos (nr_running) e hilos en espera de recursos de I/O
(nr_iowait) se corresponden razonablemente con los estados de proceso R (En ejecución) y D
(Inactible Dormir). La espera de I/O incluye tareas para las respuestas esperadas del disco y la
red.
• El número de carga es un cálculo de contador global, que se suma para todas las CPU. Si las
tareas que regresan del modo reposo se pueden reescalonar a diferentes CPU, los recuentos
precisos por CPU son difíciles. pero se asegura un conteo acumulativo exacto. Los promedios de
carga mostrados representan todas las CPUs.
• Linux cuenta cada hyperthread central y microprocesador de la CPU física como unidades de
ejecución separadas, lógicamente representadas y denominadas CPU individuales. Cada CPU tiene
colas de solicitud independientes. Ver /proc/cpuinfo para la representación del kernel de las CPUs
del sistema.
960067641
informes@atp.com.pe
www.atp.com.pe
15
Los tres valores representan los valores ponderados durante el último minuto, así como los últimos 5 y
15 minutos. Un vistazo rápido puede indicar si la carga del sistema parece aumentar o disminuir. El
cálculo de este valor de carga aproximado por CPU puede determinar si el sistema está
experimentando una sobre carga.
• Para determinar la carga, es necesario dividir los valores mostrados entre el número de CPUs
lógicos. Un valor por debajo de 1 indica un uso satisfactorio de recursos y un mínimo tiempo de
espera. Un valor por encima de 1 indica una saturación de recursos y algunos servicios en estado
de espera a ser atendidos.
El programa top es una vista dinámica de los procesos del sistema, que muestra un encabezado de
resumen seguido de un proceso o lista de hilos similar a la información del comando ps a diferencia
de la salida estática de dicho comando, la parte superior se actualiza continuamente en un intervalo
configurable y proporciona capacidades para reordenar columnas, ordenarlas y destacarlas. Las
configuraciones de usuario se pueden guardar y hacer persistentes.
• El ID de proceso (PID).
• El dueño del proceso (USER).
• Memoria virtual (VIRT), es toda la memoria que usa el proceso, incluida la usada por las librerías y
cualquier página de memoria mapeada o intercambiada.
• Memoria residente (RES), es la memoria física no intercambiada que utiliza una tarea.
• Estado del proceso.
o D = Ininterrumpible durmiendo
o R = Corriendo
o S = Durmiendo
o T = Detenido o rastreado
o Z = Zombie
• El tiempo de CPU (TIME), es el tiempo total de procesamiento desde que comenzó el proceso. Se
puede cambiar para incluir el tiempo acumulativo de todos los procesos hijos anteriores.
• El nombre del proceso
Las opciones fundamentales del comando top se muestran en la siguiente tabla.
960067641
informes@atp.com.pe
www.atp.com.pe
16
TECLA PROPÓSITO
?oh Muestra la ayuda del comando top.
l, t, m Alterna entre la carga, los hilos y las líneas del encabezado de la memoria.
1 Alternar mostrando CPU individuales o un resumen para todas las CPUs en el
encabezado.
s Cambia la frecuencia de actualización (pantalla) en decimales de segundos (por
ejemplo, 0.5, 1, 5).
b Alternar resaltado inverso para procesos en ejecución; el valor predeterminado es
solo negrita.
B Permite el uso de negrita en la pantalla, en el encabezado y para ejecutar procesos.
H Alternar en hilos; muestra el resumen del proceso o hilos individuales.
u, U Filtrar para cualquier nombre de usuario (efectivo, real).
M Ordena la lista de procesos por uso de memoria, en orden descendente.
P Ordena la lista de procesos por utilización del procesador, en orden descendente.
k Mata a un proceso, ingresando PID y luego señal.
r Reiniciar un proceso. Cuando se le solicite, ingrese PID, luego nice_value.
w Escriba (guarde) la configuración de visualización actual para usarla en el siguiente
reinicio superior.
q Salir
960067641
informes@atp.com.pe
www.atp.com.pe
17
1. Abrir dos terminales. En el terminal de la izquierda ejecutar el siguiente proceso el cual escribirá de
manera continua la palabra piedra más un espacio en el archivo ~/salida con un intervalo de 1s. El
siguiente comando debe estar rodeado de paréntesis para que sea interpretado como un solo
proceso.
[root@labrhel7 ~]# (while true; do echo -n "piedra " >> ~/salida; sleep 1; done)
2. En la terminal de la derecha usar el comando tail para verificar la salida del archivo ~/salida.
4. En el terminal de la izquierda, listar las tareas mediante el comando jobs. Reiniciar la tarea
suspendida en segundo plano. Confirmar en la otra terminal que el proceso nuevamente esta
corriendo.
[root@labrhel7 ~]# (while true; do echo -n "papel " >> ~/salida; sleep 1; done) &
[2] 4917
[root@labrhel7 ~]# (while true; do echo -n "tijera " >> ~/salida; sleep 1; done) &
[3] 4966
6. Suspender el proceso piedra usando los comandos fg y Ctrl+z, confirmar que dicho proceso no
escribe en la salida ~/salida.
960067641
informes@atp.com.pe
www.atp.com.pe
18
3. CONTROL DE SERVICIOS
El inicio del sistema y los procesos del servidor son manejados por systemd - System and Service
Manager. Este programa proveé métodos para activar los recursos del sistema, demonios y otros
procesos.
Los demonios son procesos que esperan o corren en segundo plano (background) realizando
diferentes tareas. Generalmente los demonios levantan automáticamente al inicio (boot time) y
continuan corriendo hasta el apagado del servidor o hasta que son manualmente detenidos. Por
convención los nombres de la mayoría de programas demonios terminan con la letra “d”.
En CentOS 7 / RHEL 7, systemd reemplaza el sistema tradicional de inicio init, heredado de los
sistemas operativos estilo UNIX System V y Berkeley Software Distribution (BSD). Systemd es un
conjunto de demonios de administración de sistema destinados a interactuar con el núcleo del
Sistema Operativo GNU/Linux.
El comando systemctl es usado para manejar diferentes tipos de objetos systemd, llamados
unidades. La lista de todas las unidades que maneja systemd pueden ser mostradas mediante el
siguiente comando.
Las unidades de servicio tienen la extensión .service y representan servicios del sistema. Este tipo de
unidades es usado para empezar los demonios frecuentemente accesdidos como por ejemplo un
servidor web.
Las unidades de path tinene la extensión .path y son usadas para demorar la activación de un servicio
hasta que un cambio particular a nivel de sistema de archivos ocurra. Esto es comunmente usado por
servicios que manejan un directorio spoll por ejemplo el sistema de impresión.
El estado de un servicio puede ser verificado mediante el siguiente comando. Por ejemplo, si
deseamos verificar el estado del servicio sshd.
960067641
informes@atp.com.pe
www.atp.com.pe
19
CGroup: /system.slice/sshd.service
└─867 /usr/sbin/sshd -D
Múltiples palabras claves que indican el estado del servicio pueden ser encontrada en la salida del
comando.
• Consultar el estado de todas las unidades para verificar si se inicia con el sistema.
960067641
informes@atp.com.pe
www.atp.com.pe
20
• El argumento status también se puede usar para determinar si una unidad en particular está activa
y mostrar si la unidad está habilitada para comenzar en el momento del arranque. Existen
comandos alternativos que pueden mostrar fácilmente si está habilitado en el arranque.
• Si deseamos listar todas las unidades de servicio del sistema activas, ejecutamos el siguiente
comando.
Los cambios en un archivo de configuración o sus actualizaciones a un servicio pueden requerir que se
reinicie el servicio. Un servicio que ya no se usa puede detenerse antes de eliminar el software. Un
servicio que no se usa con frecuencia puede ser iniciado manualmente por un administrador solo
cuando es necesario.
960067641
informes@atp.com.pe
www.atp.com.pe
21
• Emita instrucciones para que un servicio lea y vuelva a cargar su archivo de configuración sin
detenerse ni iniciarse por completo. El PID del proceso no cambiará.
• En ocasiones deseamos que un servicio manejado por systemd no pueda ser levantado, por
ejemplo para preveer que un servicio que pueda entrar en conflicto con otro (por ejemplo, el
servicio Network Manager y el servicio network manejan ambos el tema de redes) sea iniciado de
manera accidental, dicho servicio puede ser enmascarado. El enmascaramiento crea un enlace nulo
en el directorio de configuraciones, de tal forma que si un servicio es iniciado, nada pasará. Para
ello ejecutamos lo siguiente.
960067641
informes@atp.com.pe
www.atp.com.pe
22
Iniciar un servicio en un sistema en ejecución no garantiza que el servicio se inicie cuando el sistema
se reinicie. De manera similar, detener un servicio en un sistema en ejecución no evitará que se inicie
cuando el sistema se reinicie. Los servicios se inician en el momento del arranque cuando los enlaces
se crean en los directorios de configuración del sistema apropiados. Estos enlaces se crean y eliminan
con comandos systemctl.
COMANDO DESCRIPCIÓN
systemctl status UNIT Mostrar descripción detallada del estado de una unidad.
systemctl stop UNIT Detener un servicio que actualmente corre en el sistema.
systemctl start UNIT Iniciar un servicio en el sistema.
systemctl restart UNITReiniciar un servicio en el sistema.
systemctl reload UNIT Recargar configuración de un servicio en ejecución.
systemctl enable UNIT Configurar un servicio para iniciar al momento de encender el sistema.
systemctl disable UNITDeshabilitar un servicio para no iniciar al momento de encender el sistema.
systemctl mask UNIT Deshabilita completamente un servicio, no puede ser iniciado ni
manualmente ni al inicio del sistema.
systemctl unmask UNIT Hace que un servicio enmascarado vuelva a estar disponible.
960067641
informes@atp.com.pe
www.atp.com.pe
23
TARGET PROPÓSITO
graphical.target El sistema soporta múltiples usuarios, inicio de sesión mediante interfaz
gráfica y modo texto. Equivalente al nivel de inicio (runlevel) 5.
multi-users.target El sistema soporta múltiples usuarios, inicio de sesión únicamente en modo
texto. Equivalente al nivel de inicio (runlevel) 3.
rescue.target Sistema básico inicializado de manera completa. Equivalente al nivel de
inicio (runlevel) 1.
poweroff.target Apagará todos los servicios levantados, desmontará todos los sistemas de
archivos y apagará el sistema. Equivalente al nivel de inicio (runlevel) 0.
reboot.target Apagará todos los servicios levantados, desmontará todos los sistemas de
archivos y reiniciará el sistema. Equivalente al nivel de inicio (runlevel) 6.
Antes de cambiar el nivel de ejecución por defecto a usar, necesitamos comprobar los targets
disponibles y activos en el sistema para ello ejecutamos el siguiente comando.
960067641
informes@atp.com.pe
www.atp.com.pe
24
16 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
Cabe resaltar que si no hemos instalado interfaz gráfica alguna, el comando anterior no mostrará el
target correspondiente a este nivel de ejecución (nivel 5), puesto que se encuentra en un estado de
inactividad. Para verificar todos los targets, incluido aquellos que están inactivos, ejecutamos el
siguiente comando.
Si deseamos cambiar el nivel de ejecución por defecto al nivel 5 (multiusuario con interfaz gráfica),
ejecutamos el siguiente comando.
960067641
informes@atp.com.pe
www.atp.com.pe
25
# reboot
Si deseamos verificar el contenido del directorio systemd relacionado a los niveles de ejecución,
ejecutamos el siguiente comando.
Ahora sabemos que exactamente realiza el comando, es decir si deseamos modificar de manera
manual el nivel de inicio, lo que realizamos sería lo siguiente.
O en su defecto.
960067641
informes@atp.com.pe
www.atp.com.pe
26
3. Explorar el estado del servicio de chronyd. Este servicio se usa para sincronización de tiempo de
red (NTP).
4. Determinar si el servicio sshd está habilitado para comenzar de manera automática al arrancar el
sistema.
5. Verificar el estado del servicio postfix. Deshabilitar el servicio postfix para que no se inicie al
arrancar el sistema, luego ver el estado del servicio. Reiniciar el sistema operativo y verificar
nuevamente el estado del servicio postfix.
960067641
informes@atp.com.pe
www.atp.com.pe
27
4. ANÁLISIS DE LOGS
Los procesos y el kernel del sistema operativo deben poder registrar un registro de eventos que
suceden. Estos registros pueden ser útiles para auditar el sistema y solucionar problemas. Por
convención, el directorio /var/log es donde estos registros se almacenan de forma persistente.
Un sistema de registro estándar basado en el protocolo Syslog está integrado en Red Hat Enterprise
Linux 7. Muchos programas usan este sistema para registrar eventos y organizarlos en archivos de
registro. En Red Hat Enterprise Linux 7, los mensajes syslog son manejados por dos servicios,
systemd-journald y rsyslog.
El servicio rsyslog luego ordena los mensajes syslog por tipo (o recurso) y prioridad, y los escribe en
los archivos persistentes en el directorio /var/log. El directorio /var/log contiene varios archivos de
registro específicos del sistema y del servicio mantenidos por rsyslog.
960067641
informes@atp.com.pe
www.atp.com.pe
28
Muchos programas usan el protocolo syslog para registrar eventos en el sistema. Cada mensaje de
registro se clasifica por una facility (el tipo de mensaje) y una prioridad (la gravedad del mensaje).
Las instalaciones que están disponibles están documentadas en la página de comando man
rsyslog.conf (5).
El servicio rsyslogd usa el facility y la prioridad de los mensajes de registro para determinar cómo
manejarlos. Esto se configura por el archivo /etc/rsyslog.conf y por los archivos *.conf en la carpeta
/etc/rsyslog.d. Los programas y administradores pueden cambiar la configuración del servicio rsyslogd
de tal manera de tal manera que no se vea afectado el archivo principal de configuración, todo esto
se realiza mediante archivos individuales dentro del directorio /etc/rsyslog.d.
La sección ####RULES#### del archivo /etc/rsyslog.conf contiene directivas que definen dónde se
guardan los mensajes de registro. El lado izquierdo de cada línea indica el facility y la gravedad del
mensaje de registro que coincide con la directiva. El archivo rsyslog.conf puede contener el carácter *
como un comodín en el campo de facility y gravedad, donde representa todos los tipos de
severidades. El lado derecho de cada línea indica en qué archivo guardar el mensaje de registro. Los
mensajes de registro normalmente se guardan en archivos en el directorio /var/log como un estándar.
Los registros son "rotados" por la utilidad de rotación de registros (logrotate) para evitar que llenen el
sistema de archivos que contiene /var/log/. Cuando se rota un archivo de registro, se renombra con
una extensión que indica la fecha en que se rotó: por ejemplo, el archivo /var/log/messages puede
convertirse en /var/log/messages-20141030 si se rota el 30 de octubre de 2014. Una vez que se rota
el archivo de registro anterior, se crea un nuevo archivo de registro y se notifica al servicio que
escribe en él.
960067641
informes@atp.com.pe
www.atp.com.pe
29
Los registros del sistema escritos por rsyslog comienzan con el mensaje más antiguo en la parte
superior y el último mensaje al final del archivo de registro. Todas las entradas de registro en archivos
de registro gestionados por rsyslog se graban en un formato estándar. El siguiente ejemplo se
explicará la estructura de un mensaje de archivo de registro /var/log/secure.
1
La marca de tiempo cuando se registró la entrada de registro.
2
El host desde el que se envió el mensaje de registro.
3
El programa o proceso que envió el mensaje de registro.
4
El mensaje real enviado.
Es especialmente útil para reproducir problemas y problemas para monitorear uno o más archivos de
registro para eventos. El comando tail -f /path/to/file pone las últimas 10 líneas del archivo
especificado y continúa generando nuevas líneas a medida que se escriben en el archivo monitoreado.
Para supervisar los intentos fallidos de inicio de sesión en un terminal, ejecute ssh como usuario root
mientras un usuario intenta iniciar sesión en el equipo labcentos7:
960067641
informes@atp.com.pe
www.atp.com.pe
30
El journal systemd almacena datos de registro en un archivo binario estructurado e indexado. Estos
datos incluyen información adicional sobre el evento de registro. Para eventos syslog, esto puede
incluir la instalación y la prioridad del mensaje original, por ejemplo.
En Red Hat Enterprise Linux 7, el journal systemd se almacena por defecto en /run/log y su contenido
se borra después de un reinicio. Esta configuración puede ser modificada por el administrador del
sistema si se desea.
El comando journalctl muestra el log completo del sistema, comenzando con la entrada de registro
más antigua, cuando se ejecuta como usuario raíz:
El comando journalctl resalta en negrita los avisos de prioridad de nivel advertencia (warning), y los
mensajes de error y de más alta prioridad se resaltan en rojo.
La clave para utilizar con éxito los logs para la resolución de problemas y la auditoría, es limitar la
salida de los mismos a resultados relevantes. En los párrafos siguientes, se presentarán varias
estrategias diferentes para mejorar las consultas en los logs.
Por defecto. journalctl -n muestra las últimas 10 entradas de registro. Se necesita un parámetro
opcional para ver cuántas de las últimas entradas de registro se deben mostrar. Para mostrar las
últimas 5 entradas de registro, ejecute:
960067641
informes@atp.com.pe
www.atp.com.pe
31
Para solucionar problemas, es útil filtrar la salida de logs por prioridad de las entradas. El comando
journalctl -p toma el nombre o el número de niveles de prioridad conocidos y muestra los niveles
dados y todas las entradas de nivel superior. Los niveles de prioridad conocidos por journalctl son
debug, info, notice, warning, err, crit, alert y emerg.
Para filtrar la salida del comando journalctl para que solo enumere cualquier entrada de registro de
error de prioridad anterior, se ejecuta:
De forma similar al comando tail -f, journalctl -f emite las últimas 10 líneas del diario y continúa
generando nuevas entradas del log a medida que se escriben en él.
Cuando se buscan eventos específicos, es útil limitar el resultado a un marco de tiempo específico. El
comando journalctl tiene dos opciones para limitar la salida a un rango de tiempo específico, las
opciones --since y --until. Ambas opciones toman un parámetro de tiempo en el formato AAAA-MM-DD
hh:mm:ss. Si se omite la fecha, el comando asume que la fecha es hoy, y si se omite la parte de
tiempo, se asume todo el día, que comienza a las 00:00:00. Ambas opciones toman yesterday, today
y tomorrow como parámetros válidos además del campo de fecha y hora.
960067641
informes@atp.com.pe
www.atp.com.pe
32
Además del contenido visible del log, hay campos adjuntos a las entradas de registro que solo se
pueden ver cuando se activa la salida detallada (verbose mode). Todos los campos adicionales
mostrados se pueden usar para filtrar el resultado de una consulta del log. Esto es útil para reducir la
salida de búsquedas complejas para ciertos evento.
Entre las opciones más útiles para buscar líneas relevantes para un proceso o evento en particular, se
encuentran:
960067641
informes@atp.com.pe
www.atp.com.pe
33
Corregir el tiempo sincronizado del sistema es muy importante para el análisis de archivos de registro
en múltiples sistemas.
El Network Time Protocol (NTP) es una forma estándar para que las máquinas proporcionen y
obtengan la información de tiempo correcta en Internet. Una máquina puede obtener información de
tiempo precisa de los servicios públicos de NTP en Internet, como el Proyecto de Grupo NTP. Un
reclock a nivel de hardware de alta calidad para entregar tiempo exacto a los clientes locales puede
ser otra opción.
El comando timedatectl muestra una descripción general de la configuración actual del sistema
relacionada con la hora, incluida la hora actual, la zona horaria y la configuración de sincronización
NTP del sistema.
Una base de datos con zonas horarias conocidas está disponible y se puede enumerar con:
Los nombres de zona horaria se basan en la base de datos de zona horaria pública "tz" (o "zoneinfo")
establecida por IANA. Las zonas horarias se nombran en función del continente o del océano, por lo
960067641
informes@atp.com.pe
www.atp.com.pe
34
general, pero no siempre la ciudad más grande con en la región de la zona horaria. Por ejemplo, la
mayoría del estado de Mountain en EE.UU. pertenece la zona horaria "América / Denver".
Seleccionar el nombre correcto puede no ser tan intuitivo en los casos en que las localidades dentro
de la zona horaria tengan diferentes reglas de horario de verano. Por ejemplo, en los EE.UU., Gran
parte del estado de Arizona (tiempo de Mountain en EE.UU.) no tiene un ajuste de horario de verano
y se encuentra en la zona horaria "América/Phoenix".
Para cambiar la configuración actual de hora y fecha con el comando timedatectl, la opción set-time
está disponible. La hora se especifica en el formato "AAAA-MM-DD hh:mm:ss", donde la fecha o la
hora pueden ser omitidas. Para cambiar la hora a las 09:00:00, ejecuta:
La opción set-ntp habilita o deshabilita la sincronización NTP para un ajuste de tiempo automático. La
opción requiere un argumento verdadero (true) o falso (false) para activarlo o desactivarlo. Para
activar la sincronización NTP, ejecuta:
El servicio de cronyd mantiene el reloj de hardware local (RTC) sincronizado con los servidores NTP
configurados, a través del archivo de configuración /etc/chrony.conf.
De forma predeterminada, chronyd utiliza servidores del Proyecto de grupo NTP para la sincronización
de tiempo y no necesita configuración adicional. Puede ser útil cambiar los servidores NTP cuando la
máquina en cuestión se encuentra en una red aislada.
960067641
informes@atp.com.pe
www.atp.com.pe
35
Una vez configurado o modificado el archivo principal del servicio chronyd, es necesario reiniciar el
servicio para que los cambios surjan efecto.
Para verificar que la sincronización se lleva a cabo a través de los servidores NTP configurados en el
servicio chronyd, se ejecuta el siguiente comando.
960067641
informes@atp.com.pe
www.atp.com.pe
36
2. Reiniciar el servicio postfix y verificar la salida de los logs correspondientes mediante lectura
directa.
3. Reiniciar el servicio chronyd y verificar la salida de los logs mediante el journal systemd.
4. Indicar el orden en que las siguientes actividades para sincronizar la hora en el servidor deben ser
ejecutadas.
__ b. Verificar que la hora ha sido sincronizada contra los nuevos servidores NTP especificados
mediante el comando chronyc sources.
960067641
informes@atp.com.pe
www.atp.com.pe
37
Tradicionalmente, las interfaces de red en Linux se enumeraban como eth0, eth1, eth2, etc. Sin
embargo, el mecanismo que establece estos nombres podía causar cambios de nombres cuando
dispositivos se agregaban o eliminaban. El comportamiento de nomenclatura predeterminado en Red
Hat Enterprise Linux 7 es asignar nombres fijos en función del firmware, la topología del dispositivo y
el tipo de dispositivo. Los nombres de interfaz tienen los siguientes caracteres.
• Interfaces Ethernet comienzan con la palabra en, interfaces WLAN comienzan con wl, e interfaces
WWAN comienzan con ww.
• El siguiente carácter representa el tipo de adaptador, una letra o indica una interfaz embebida, una
letra s indicada una interfaz hotplug y una letra p una interfaz tipo PCI.
Por ejemplo, la primera interfaz de red incorporada se puede llamar eno1 y una interfaz de red de
tarjeta PCI se puede llamar enp2s0. Los nuevos nombres hacen que sea más fácil distinguir la relación
entre un puerto y su nombre si el usuario conoce ambos, caso contrario, los usuarios no podrían
asumir esto con interfaces llamadas ethx.
5.2.1. COMANDO IP
1
Una interfaz active de red tiene el estado UP.
2
La línea “link” identifica la dirección MAC del dispositivo.
3
La línea “inet” muestra la dirección IPV4 y su prefijo.
4
La máscara de red y el nombre del dispositivo también son mostrados en esta línea.
5
La línea inet6 muestra la información de la dirección IPV6.
El comando ip también se puede usar para mostrar estadísticas sobre el rendimiento de la red. Los
paquetes recibidos (RX) y transmitidos (TX), los errores y los contadores descartados se pueden usar
para identificar problemas de red causados por la congestión, la poca memoria y los excesos.
[root@labrhel7 ~]# ip -s link show enp0s3
960067641
informes@atp.com.pe
www.atp.com.pe
38
En el ejemplo mostrado, todos los paquetes destinados a la red 10.0.2.0/24 serán enviados
directamente a través de la interfaz enp0s3. Todos los paquetes destinados a la red 192.68.56.0/24
serán enviados directamente al destino a través de la interfaz enp0s8. Cualquier otro paquete será
enviado a la puerta de enlace determinada (default gateway) para que sea reenviado a su destino,
todo esto a través de la interfaz enp0s3.
El comando ping se usa para probar la conectividad. El comando continuará ejecutándose hasta que
se presione Control+C a menos que se den opciones para limitar la cantidad de paquetes enviados.
Si se desea enviar cierto npumero de paquetes se usa la opción –c, por ejemplo, enviar solo un
paquete de pruebas.
960067641
informes@atp.com.pe
www.atp.com.pe
39
Para rastrear la ruta a un host remoto, use traceroute o tracepath. Ambos comandos se pueden usar
para rastrear una ruta con paquetes UDP; sin embargo, muchas redes bloquean el tráfico UDP e
ICMP. El comando traceroute tiene opciones para rastrear la ruta con paquetes UDP
(predeterminado), ICMP (-I) o TCP (-T), pero es posible que este paquete no se instale por defecto.
Cada línea en la salida de tracepath representa un enrutador o salto por el que pasa el paquete entre
el origen y el destino final. Se proporciona información adicional según disponibilidad, incluido el
tiempo de ida y vuelta (RTT) y cualquier cambio en el tamaño máximo de la unidad de transmisión
(MTU).
5.2.4. COMANDO SS
Los servicios TCP usan sockets como puntos finales para la comunicación y están formados por un
protocolo de dirección IP y un número de puerto. Los servicios normalmente escuchan en puertos
estándar mientras que los clientes usan un puerto aleatorio disponible. Todos los nombres conocidos
para puertos estándar se enumeran en el archivo /etc/services.
El comando ss se usa para mostrar las estadísticas de los sockets. Es similar al comando netstat de
versiones anteriores.
1
El Puerto usado por el servicio SSH está escuchando sobre todas las direcciones IPV4. El símbolo
asterisco “*” es usado para representar todo cuando se hace referencia a direcciones y puertos IPV4.
2
El puerto usado por el servicio SMTP está escuchando sobre la interfaz loopback IPV4 127.0.0.1.
960067641
informes@atp.com.pe
www.atp.com.pe
40
OPCIÓN DESCRIPCIÓN
-n Mostrar números en lugar de nombres para interfaces y puertos.
-t Muestra sockets TCP.
-u Muestra sockets UDP.
-l Muestra únicamente sockets en escucha.
-a Muestra todo, sockets en modo escucha y con conexiones establecidas.
-p Muestra el proceso usado por el socket.
El demonio que maneja y administra por defecto las configuraciones de red es NetworkManager. nmcli
es la herramienta a nivel de consola para para conversar con el demonio NetworkManager, todas las
configuraciones de este demonio son guardadas en la ubicación /etc/sysconfig/network-scripts.
Un dispositivo es una interfaz de red. Una conexión es una configuración utilizada para un dispositivo
que se compone de una colección de configuraciones. Múltiples conexiones pueden existir para un
dispositivo, pero solo una puede estar activa a la vez. Por ejemplo, un sistema normalmente se puede
conectar a una red con configuraciones proporcionadas por DHCP. Ocasionalmente, ese sistema debe
estar conectado a una red de laboratorio o centro de datos, que solo usa redes estáticas. En lugar de
cambiar la configuración de forma manual, cada configuración se puede almacenar como una
conexión separada.
Para mostrar una lista de todas las conexiones, use nmcli con show. Para enumerar solo las
conexiones activas, agregue la opción --active.
Es posible especificar una ID de conexión (nombre) para ver los detalles de esa conexión. Las
configuraciones en minúsculas representan la configuración de la conexión. Los nombres de
configuración y propiedad se definen en la página de comando man de nm-settings (5). Los ajustes
en mayúsculas son datos activos.
960067641
informes@atp.com.pe
www.atp.com.pe
41
El comando nmcli también se puede usar para mostrar el estado y los detalles del dispositivo.
Al crear una nueva conexión con nmcli, el orden de los argumentos es importante. Los argumentos
comunes aparecen primero y deben incluir el tipo y la interfaz. A continuación, especifique los
argumentos específicos de tipo y finalmente especifique la dirección IP, el prefijo y la información de
la puerta de enlace. Se pueden especificar múltiples direcciones IP para un solo dispositivo. Las
configuraciones adicionales, como un servidor DNS, se configuran como modificaciones una vez que
existe la conexión.
1. Crear una nueva conexión llamada "enp0s9-dhcp" que se conectará como una conexión Ethernet
en el dispositivo enp0s9 usando DHCP.
[root@labrhel7 ~]# nmcli con add con-name "enp0s9-dhcp" ifname enp0s9 type ethernet
Conexión 'enp0s9-dhcp' (b6672a69-28d9-4643-9382-4ae534d822f5) agregada con éxito.
[root@labrhel7 ~]# nmcli con show
NOMBRE UUID TIPO DISPOSITIVO
enp0s3 afb4b22c-982f-4c77-a59e-0bf589037760 802-3-ethernet enp0s3
enp0s8 02bdbaa7-b5c7-4019-ba55-3f0f4e13e9f7 802-3-ethernet enp0s8
enp0s9-dhcp b6672a69-28d9-4643-9382-4ae534d822f5 802-3-ethernet enp0s9
960067641
informes@atp.com.pe
www.atp.com.pe
42
[root@labrhel7 ~]# nmcli con add con-name "enp0s9-static" ifname enp0s9 type
ethernet autoconnect no ip4 192.168.1.100/24 gw4 192.168.1.1
Conexión 'enp0s9-static' (2141a8d6-0ed2-47a9-9f31-a569aa09bd07) agregada con éxito.
[root@labrhel7 ~]# nmcli con show
NOMBRE UUID TIPO DISPOSITIVO
enp0s3 afb4b22c-982f-4c77-a59e-0bf589037760 802-3-ethernet enp0s3
enp0s8 02bdbaa7-b5c7-4019-ba55-3f0f4e13e9f7 802-3-ethernet enp0s8
enp0s9-dhcp b6672a69-28d9-4643-9382-4ae534d822f5 802-3-ethernet enp0s9
enp0s9-static 2141a8d6-0ed2-47a9-9f31-a569aa09bd07 802-3-ethernet --
3. Hasta este punto el sistema conectará de manera automática la conexión enp0s9-dhcp inclusive
luego de un reinicio. Si deseamos cambiar a la conexión enp0s9-static.
Una conexión existente puede modificarse con nmcli con el argumento mod. Los argumentos son
conjuntos de pares opción/valor. La opción incluye un nombre de configuración y un nombre de
propiedad. Use nmcli con show "<ID>" para ver la lista de valores actuales para una conexión. La
página man de nm-settings (5) documenta la configuración y los nombres y el uso de las propiedades.
1. Desactivar la autoconexión.
960067641
informes@atp.com.pe
www.atp.com.pe
43
2. Configurar DNS.
3. Algunos argumentos soportan la adición o remoción de valores mediante los símbolos +/- delante
de ellos. Por ejemplo, para agregar un servidores DNS adicional.
Cabe resaltar que el comando nmcli con mod únicamente guardara los cambios realizados, más no
lo aplicará hasta que se indique ello. Para aplicar los cambios, ejecutar el comando.
COMANDO USO
nmcli dev status Lista todos los dispositivos.
nmcli con show Lista todas las conexiones.
nmcli con up “ID" Activa una conexión.
nmcli con down “ID" Desactiva una conexión. La conexión se reiniciará automáticamente si la
opción autoconnect está en yes.
nmcli dev dis Dar de baja una interfaz y temporalmente deshabilitar la autoconexión.
nmcli net off Deshabilitar todas las interfaces manejadas.
nmcli con add ... Agregar una nueva conexión.
nmcli con mod "" ... Modificar una conexión.
nmcli con del “ID” Borrar una conexión.
También es posible configurar la red editando archivos de configuración de interfaz. Los archivos de
configuración de interfaz controlan las interfaces de software para dispositivos de red de manera
individual. Estos archivos se suelen llamar /etc/sysconfig/network-scripts/ifcfg-<nombre>, donde
<nombre> hace referencia al nombre del dispositivo o conexión que controla el archivo de
configuración. Las siguientes son variables estándar que se encuentran en el archivo utilizado para la
configuración estática o dinámica.
960067641
informes@atp.com.pe
www.atp.com.pe
44
En la configuración estática, las variables para la dirección IP, el prefijo y la puerta de enlace tienen
un número al final. Esto permite que se asignen múltiples conjuntos de valores a la interfaz. La
variable DNS también tiene un número que se usa para especificar el orden de búsqueda cuando se
especifican varios servidores.
Después de modificar los archivos de configuración, ejecute nmcli con reload para que
NetworkManager lea los cambios de configuración. La interfaz aún debe reiniciarse para que los
cambios surtan efecto.
El comando hostname muestra o modifica temporalmente el nombre de host completo del sistema.
960067641
informes@atp.com.pe
www.atp.com.pe
45
La resolución de stub se usa para convertir nombres de host a direcciones IP o viceversa. El contenido
del archivo /etc/hosts se verifica primero.
El comando getent hosts hostname se puede usar para probar la resolución del nombre de host con el
archivo /etc/hosts. Si no se encuentra una entrada en ese archivo, la resolución de stub busca la
información en un servidor de nombres DNS. El archivo /etc/resolv.conf controla cómo se realiza esta
consulta:
• search: una lista de nombres de dominio para probar con un nombre corto de host.
960067641
informes@atp.com.pe
www.atp.com.pe
46
1. Añadir una nueva interfaz de red a la máquina virtual en modo puente. Crear una configuración
sobre esta interfaz con el nombre lan-dhcp, configurarlo de con DHCP y habilitarla. Verificar y anotar
los valores que brindó (Dirección IP, máscara de red, puerta de enlace predetermiada y servidores
dns)
2. Crear otra configuración sobre la nueva interfaz agregada con el nombre lan-estatico, de tal forma
que tenga los siguientes valores.
4. Cambiar el nombre de host de nuestro servidor de manera temporal por prueba.atp.com.pe. ¿Cómo
verificó el cambio realizado?.
960067641
informes@atp.com.pe
www.atp.com.pe
47
Archivar y comprimir archivos son útiles al crear copias de seguridad y transferir datos a través de una
red. Uno de los comandos más antiguos y más comunes para crear y trabajar con archivos de copia
de seguridad es el comando tar.
Con tar, los usuarios pueden reunir grandes conjuntos de archivos en un solo archivo (archivo). El
archivo se puede comprimir utilizando compresión gzip, bzip2 o xz.
El comando tar puede mostrar el contenido de los archivos o extraer sus archivos al sistema actual.
Ejemplos de cómo usar el comando tar están incluidos en esta sección.
Antes de crear un archivo tar, verifique que no haya ningún archivo en el directorio con el mismo
nombre que el nuevo archivo que se creará. El comando tar sobrescribirá un archivo existente sin
ninguna retroalimentación.
La primera opción para usar al crear un nuevo archivo es la opción c, seguida de la opción f, luego un
espacio individual, luego el nombre del archivo que se creará y, finalmente, la lista de archivos y
directorios que se deben agregar a el archivo. El archivo se crea en el directorio actual a menos que
se especifique otra cosa.
En el siguiente ejemplo, se crea un archivo llamado archive.tar con los contenidos de file1, file2 y file3
en el directorio de inicio del usuario.
NOTA: Al archivar archivos con una ruta absoluta (es decir que la ruta comience desde la raíz “/”), de
la ruta se elimina el primer / de forma predeterminada. Esto ayuda a evitar errores que podrían
sobrescribir los archivos importantes. Los archivos normalmente se extraen en relación con el
directorio de trabajo actual del comando tar.
Para que tar pueda archivar los archivos seleccionados, es obligatorio que el usuario que ejecuta el
comando tar pueda leer los archivos. Por ejemplo, crear un nuevo archivo de la carpeta /etc y todo su
contenido requiere privilegios de administrador, ya que solo el usuario root puede leer todos los
archivos allí. Un usuario sin privilegios podría crear un archivo de la carpeta /etc, pero el archivo
omitirá los archivos que no incluyen permiso de lectura para el usuario y omitirá los directorios que no
incluyen permisos de lectura y ejecución para el usuario
960067641
informes@atp.com.pe
www.atp.com.pe
48
Si se desea crear el archivo tar /root/etc.tar con el directorio /etc como contenido, como usuario root
se ejecutaría lo siguiente.
Si bien tar almacena la propiedad y los permisos de los archivos, existen otros atributos que no están
almacenados en el archivo tar por defecto, como el contexto de SELinux y las ACL. Para almacenar
esos atributos extendidos en el archivo tar, se requiere la opción --xattrs al crear un archivo.
Para listar el contenido de un archivo, se requieren las opciones t y f, junto con el archivo comprimido
para operar. Listar el contenido del archivo /root/etc.tar.
Normalmente, se debe extraer un archivo tar en un directorio vacío para asegurarse de que no se
sobrescribe cualquier archivo existente. Si los archivos se extraen por el usuario root, tar intenta
preservar la propiedad original del usuario y grupo de los archivos. Si un usuario normal extrae
archivos usando tar, los archivos extraídos son propiedad de ese usuario.
De forma predeterminada, cuando los archivos se extraen de un archivo, la umask es quitada de los
permisos del contenido del archivo. Esta es una medida de seguridad y evita que los archivos
normales extraídos reciban permisos de ejecución de forma predeterminada. Para preservar los
permisos de un archivo empaquetado, la opción p se debe usar al extraer un archivo.
960067641
informes@atp.com.pe
www.atp.com.pe
49
Hay tres métodos de compresión diferentes admitidos por el comando tar. La compresión gzip es la
más rápida y más antigua, y está más ampliamente disponible. La compresión bzip2 generalmente
conduce a archivos más pequeños en comparación con gzip y es menos disponible que gzip,
mientras que el método de compresión xz es relativamente nuevo, pero generalmente ofrece la mejor
relación de compresión de los métodos disponibles.
Es una buena práctica usar un solo directorio de nivel superior, que puede contener otros directorios y
archivos, para simplificar la extracción de los archivos de una manera organizada.
Para crear un archivo tar comprimido, se puede especificar una de las siguientes opciones tar.
Crear (opción c) con compresión gzip (opción z) empaquetado llamado /root/etcbackup.tar.gz del
directorio /etc.
Crear (opción c) con compresión bzip2 (opción j) empaquetado llamado /root/logbackup.tar.bz2 del
directorio /var/log.
960067641
informes@atp.com.pe
www.atp.com.pe
50
El primer paso al extraer un archivo tar comprimido es determinar dónde se deben extraer los
archivos, luego crear y cambiar al directorio de destino. Para extraer el archivo con éxito,
generalmente no es necesario utilizar la misma opción de compresión utilizada al crear el archivo, ya
que el comando tar determinará qué compresión se utilizó. Es válido agregar el método de
descompresión a las opciones tar de la siguiente manera.
Extraer (opción x) el contenido de un archivo empaquetado con compresión gzip (opción z) llamado
/root/etcbackup.tar.gz en el directorio /tmp/etcbackup.
Extraer (opción x) el contenido de un archivo empaquetado con compresión bzip2 (opción j) llamado
/root/logbackup.tar.bz2 en el directorio /tmp/logbackup.
NOTA: Listar el contenido de un archive compreso y empaquetado se realiza de la misma forma que
un archive unicamente empaquetado. Si se desea únicamente descomprimir un archivo, mas no
desempaquetarlo, se usa para ello los comandos correspondientes que son, gunzip (para .gz), bunzip2
(para .bz2) y unxz (para .xz).
960067641
informes@atp.com.pe
www.atp.com.pe
51
OPCIÓN SIGNIFICADO
c Crear un nuevo archivo.
x Extraer de un archivo existente.
t Lista los contenidos de un archivo existente.
v Modo verboso. Muestra que archivos son almacenados o extraídos.
f Nombre del archivo. Esta opción necesita ser seguida por el nombre del archivo a
usar o crear.
p Conservar los permisos de archivos y directorios al extraer un archivo, sin restar la
umask.
z Usa la compresión gzip (.tar.gz)
j Usa la compresión bzip2 (.tar.bz2). Normalmente alcanza un mejor radio de
compresión que gzip.
J Usa la compresión xz (.tar.xz). Normalmente alcanza un mejor radio de compresión
que bzip2.
El comando ssh es útil para ejecutar de forma segura comandos de shell en sistemas remotos.
También puede ser utilizado para copiar archivos de forma segura de una máquina a otra. El
comando scp transfiere archivos desde un host remoto al sistema local o desde el sistema local a un
host remoto. Utiliza el servidor SSH para autenticación y transferencia de datos encriptados.
Antes de iniciar la transferencia, el usuario debe autenticarse con el servidor SSH mediante
contraseña o claves SSH. Por ejemplo, si deseamos copiar el archivo /etc/hosts hacia un servidor
remoto en la ubicación /tmp.
Un usuario puede copiar un archivo desde una cuenta remota en una máquina remota con scp. En
este ejemplo, copia el archivo /etc/hosts desde la cuenta root de la máquina remota 192.168.1.100 al
directorio local /home/student/
Para copiar un árbol de directorios completo recursivamente, la opción -r debe ser usada. En el
siguiente ejemplo, el directorio remoto /var/log en el servidor 192.168.1.100 se copia recursivamente
al directorio local /tmp. Para poder leer todos los contenidos del directorio /etc, el usuario root debe
conectarse a la ubicación remota.
960067641
informes@atp.com.pe
www.atp.com.pe
52
La herramienta rsync es otra forma de copiar archivos de forma segura de un sistema a otro. Difiere
de scp en que, si dos archivos o directorios son similares entre dos sistemas, rsync solo necesita
copiar las diferencias entre los sistemas, mientras que scp necesitaría copiar todo.
Una de las ventajas de rsync es que puede copiar archivos entre un sistema local y un sistema
remoto de forma segura y eficiente. Si bien la sincronización inicial de un directorio dura
aproximadamente el mismo tiempo que la copia, cualquier sincronización posterior solo requiere que
las diferencias se copien a través de la red.
Una de las opciones más importantes de rsync es la opción -n para realizar una ejecución en seco
(dry run). Una ejecución en seco es una simulación de lo que ocurre cuando el comando realmente se
ejecuta. Mostrará los cambios que realizará cuando el comando se ejecute. Se recomienda realizar
una ejecución en seco de cualquier operación rsync para asegurar que no se sobrescriban o eliminen
archivos importantes.
Las dos opciones más comunes al sincronizar archivos y carpetas con rsync son las opciones -a y -v.
Mientras que la opción -v agrega verbosidad a la salida a medida que avanza la sincronización, la
opción -a significa "modo de archivo" y habilita las siguientes opciones, todo en uno:
Mientras que la opción -a sincroniza los enlaces simbólicos, hay otras opciones necesarias para
preservar los enlaces duros, ya que se tratan como archivos separados. La opción -H habilita el
manejo de enlaces duros, por lo que el comando rsync identificará los enlaces duros presentes en la
carpeta de origen y vinculará los archivos según corresponda en la carpeta de destino en lugar de
simplemente copiarlos como archivos separados.
NOTA: La opción -a no sincroniza los permisos de archivos avanzados, como los contextos de
archivos ACL o SELinux. Para habilitar la sincronización de las ACL, se requiere la opción -A además
960067641
informes@atp.com.pe
www.atp.com.pe
53
de la opción -a, mientras que para sincronizar los contextos SELinux de la fuente archivos a los
archivos de destino, se debe agregar la opción -X.
La forma básica de usar rsync es sincronizar dos carpetas locales. En el siguiente ejemplo, el
directorio /var/log obtiene una copia sincronizada en la carpeta /tmp. El directorio de registro con su
contenido se crea en el directorio /tmp.
Para sincronizar solo el contenido de una carpeta sin crear nuevamente la carpeta en el directorio de
destino, se debe agregar una barra al final del directorio de origen. En este ejemplo, el directorio de
registro no se crea en la carpeta /tmp. Solo el contenido del directorio /var/log/ se sincroniza en la
carpeta /tmp.
IMPORTANTE: Al ingresar el directorio fuente en el comando rsync, es clave recordar que importa si
una barra inclinada está presente al final del nombre del directorio, esto determinará si el directorio o
solo los contenidos del directorio serán sincronizados con el destino. Nota: La finalización de una
tabulación concordante agregará automáticamente una barra al final de los nombres del directorio.
De forma similar a scp, el comando rsync espera que las ubicaciones del sistema de archivos remoto
se especifiquen en el formato [user@]host:/ruta/absoluta. En caso de que falte la porción de usuario
(la cual es opcional), el usuario que invoca el comando rsync se utilizará para conectarse a la
ubicación remota. Es posible usar una ubicación remota como origen o destino.
En el siguiente ejemplo, la carpeta local /var/log obtiene una copia sincronizada en el directorio /tmp
en la máquina remota 192.168.1.100. Para que rsync sincronice la propiedad de los archivos
transferidos, la ubicación de destino debe escribirse como usuario root, de modo que conéctese al
servidor remoto del 192.168.1.100 como el usuario root. El usuario que se conecta debe autenticarse
con el servidor SSH mediante cualquiera de los métodos aceptados; por ejemplo, contraseña o claves
SSH.
De la misma manera, la carpeta remota /var/log del servidor 192.168.1.100 se puede sincronizar con
el directorio local /tmp.
960067641
informes@atp.com.pe
www.atp.com.pe
54
1. Crear un archivo empaquetado y compreso con algoritmo gzip de la carpeta /etc y guardarlo en la
ubicación /tmp con el nombre etc.tar.gz
2. Verificar que el archive de backup creado etc.tar.gz fue correctamente creado, descomprimientolo
en el directorio /backuptest.
3. Crear una copia de respaldo de la carpeta /var/log en la ubicación /serverlogs. Reiniciar el servidor
mediante el comando reboot y luego sincronizar nuevamente la carpeta /var/log, verificar que el
archivo log principal de sistema messages ha sido actualizado en la carpeta /serverlogs.
960067641
informes@atp.com.pe
www.atp.com.pe
55
Red Hat Subscription Management proporciona herramientas que se pueden utilizar para dar derecho
a la máquina a las suscripciones de productos, lo que permite a los administradores obtener
actualizaciones de los paquetes de software y realizar un seguimiento de la información sobre los
contratos de soporte y suscripciones utilizados por los sistemas. Herramientas como PackageKit y yum
pueden obtener paquetes de software y actualizaciones a través de una distribución de contenido red
provista por Red Hat.
Hay cuatro tareas básicas realizadas con las herramientas de administración de suscripción de Red
Hat:
• Registre un sistema para asociar ese sistema a una cuenta de Red Hat. Esto permite que el
Administrador de suscripciones realice un inventario exclusivo del sistema. Cuando ya no está en
uso, un sistema puede ser removido.
• Suscribir un sistema para dar derecho a las actualizaciones para los productos seleccionados de
Red Hat. Las suscripciones tienen niveles específicos de soporte, fechas de vencimiento y
repositorios predeterminados. Las herramientas se pueden usar para adjuntar automáticamente o
seleccionar un derecho específico. A medida que cambian las necesidades, las suscripciones
pueden ser removidas.
• Habilitar repositorios para proporcionar paquetes de software. Los repositorios múltiples están
habilitados de forma predeterminada con cada suscripción, pero otros repositorios, como las
actualizaciones o el código fuente, pueden habilitarse o deshabilitarse según sea necesario.
El comando subscription-manager permite activar las suscripciones a través de la CLI. Se debe tener
en cuenta que para que el comando funcione, el servidor necesita tener salida hacia los puerto 80 y
443 TCP.
960067641
informes@atp.com.pe
www.atp.com.pe
56
960067641
informes@atp.com.pe
www.atp.com.pe
57
• Remover el registro.
Es posible configurar de manera local un repositorio usando para ello la imagen ISO de instalación.
Para ello necesitamos montar la imagen en una ubicación y configurar el archivo correspondiente.
Con esto deberíamos tener habilitado un repositorio local a través de nuestra imagen ISO.
960067641
informes@atp.com.pe
www.atp.com.pe
58
Hace muchos años, Red Hat desarrolló el RPM Package Manager, que proporciona una forma estándar
de empaquetar software para su distribución. Administrar software en forma de paquetes RPM es
mucho más simple que trabajar con software que simplemente se ha extraído de un sistema de
archivos. Permite a los administradores rastrear qué archivos instalados por el paquete de software y
cuáles deben eliminarse si se desinstalan, y verificar que los paquetes compatibles estén presentes
cuando se instalan. La información sobre los paquetes instalados se almacena en una base de datos
RPM local en cada sistema. Todos los softwares provistos por Red Hat para Red Hat Enterprise Linux
se proporcionan como un paquete RPM.
Los archivos del paquete RPM se nombran usando una combinación del paquete nombre-version-
release.arquitectura.
vim-minimal-7.4.160-2.el7.x86_64
--------------- ---------- ----- ----------
NOMBRE VERSIÓN RELEASE ARQUITECTURA
Al instalar paquetes de repositorios, solo se requiere el nombre del paquete. Se instalará el paquete
con la versión superior. Si hay múltiples paquetes con la misma versión, se instalará el paquete con el
número de versión más alto.
• Scripts que pueden ejecutarse cuando este paquete se instala, actualiza o elimina, o que se activan
cuando se instalan, actualizan o eliminan otros paquetes.
960067641
informes@atp.com.pe
www.atp.com.pe
59
Los paquetes RPM pueden firmarse digitalmente por la organización que los empaquetó. Todos los
paquetes de una fuente en particular normalmente están firmados por la misma clave privada GPG. Si
el paquete está filtrado o dañado, la firma ya no será válida. Esto permite que el sistema verifique la
integridad del paquete antes de instalarlos. Todos los paquetes RPM lanzados por Red Hat están
firmados digitalmente.
Actualizaciones y parches
Cuando un paquete de software es parcheado por Red Hat, se genera un paquete completo de RPM.
Si se acaba de agregar un paquete a un sistema, solo se necesita la versión más reciente de ese
paquete, no todas las versiones del paquete desde la primera versión. Para los sistemas que necesitan
actualización, la versión anterior del paquete se elimina realmente y se instala la nueva versión. Los
archivos de configuración generalmente se conservan durante una actualización, pero el
comportamiento exacto de un paquete particular se define cuando se crea la nueva versión del
paquete.
En la mayoría de los casos, solo se puede instalar una versión de un paquete a la vez. Normalmente,
el proceso de instalación de RPM no permitirá sobrescribir los archivos. Si se crea un paquete para
que no haya nombres de archivo en conflicto, se pueden instalar múltiples versiones. Este es el caso
del paquete kernel. Como un kernel nuevo solo se puede probar arrancando en ese kernel, el paquete
está específicamente diseñado para que se puedan instalar varias versiones a la vez. Si el kernel
nuevo no se inicia, el kernel antiguo aún está disponible.
Una vez que se instala un sistema, normalmente se instalan paquetes y actualizaciones de software
adicionales a partir de un repositorio de paquetes de red, con mayor frecuencia a través del servicio
de gestión de suscripción de Red Hat que se analizó en la sección anterior. El comando rpm se puede
usar para instalar, actualizar, eliminar y consultar paquetes RPM. Sin embargo, no resuelve
dependencias automáticamente y todos los paquetes deben estar listados. Herramientas como
PackageKit y yum son aplicaciones frontend para RPM y se pueden usar para instalar paquetes
individuales o colecciones de paquetes (a veces llamados grupos de paquetes).
El comando yum busca en numerosos repositorios paquetes y sus dependencias para que pueden
instalarse juntos en un esfuerzo para todos evocar problemas de dependencia. El archivo de
configuración principal para yum es /etc/yum.conf con archivos de configuración de repositorio
adicionales ubicados en el directorio /etc/yum.repos.d. Los archivos de configuración del repositorio
incluyen, como mínimo, un id de repositorio (entre corchetes), un nombre y la ubicación URL del
repositorio del paquete. La URL puede apuntar a un directorio local (archivo) o ubicación de red
remota (http, ftp, etc.). Si la URL se coloca en un navegador, el contenido debe mostrar los paquetes
RPM, posiblemente en uno o más subdirectorios, y un directorio repodata con información sobre los
paquetes disponibles.
960067641
informes@atp.com.pe
www.atp.com.pe
60
960067641
informes@atp.com.pe
www.atp.com.pe
61
yum es una poderosa herramienta de línea de comandos que se puede utilizar para gestionar de
forma más flexible (instalar, actualizar, eliminar y consultar) paquetes de software. Los paquetes
oficiales de Red Hat normalmente se descargan de la red de distribución de contenido de Red Hat. El
registro de un sistema en el servicio de gestión de la suscripción configura automáticamente el acceso
a los repositorios de software en función de las suscripciones activas.
Buscar paquetes
• yum list lista los paquetes instalados y disponibles en el repositorio en base a una palabra.
• yum search PALABRA busca los paquetes por palabras clave que se encuentran solo en los
campos de nombre y resumen.
960067641
informes@atp.com.pe
www.atp.com.pe
62
• yum info PACKAGE proporciona información detallada sobre un paquete, incluido el espacio en
disco necesario para la instalación.
• yum provides /RUTA/ABSOLUTA muestra paquetes que coinciden con la ruta especificada
(que a menudo incluye caracteres comodines).
960067641
informes@atp.com.pe
www.atp.com.pe
63
• yum install PAQUETE obtiene e instala un paquete de software, incluidas las dependencias.
Dependencias resueltas
===================================================================================
===============================================
Package Arquitectura Versión
Repositorio Tamaño
===================================================================================
===============================================
Instalando:
bind-utils x86_64 32:9.9.4-50.el7
DVD 203 k
Instalando para las dependencias:
bind-libs x86_64 32:9.9.4-50.el7
DVD 1.0 M
Resumen de la transacción
===================================================================================
===============================================
Instalar 1 Paquete (+1 Paquete dependiente)
960067641
informes@atp.com.pe
www.atp.com.pe
64
• yum update PAQUETE obtiene e instala una versión más reciente del paquete de software
indicado, incluidas las dependencias. En general, el proceso intenta preservar los archivos de
configuración en su lugar, pero en algunos casos, pueden ser renombrados si el empaquetador
piensa que el anterior no funcionará después de la actualización. Si no se indica el paquete, yum
instalará todas las actualizaciones relevantes del sistema.
Como un kernel nuevo solo se puede probar arrancando en ese kernel, el paquete está
específicamente diseñado para que se puedan instalar varias versiones a la vez. Si el nuevo kernel
no puede arrancar. el kernel viejo todavía está disponible. Usando yum update kernel, realmente
instalará el kernel nuevo. Los archivos de configuración contienen una lista de paquetes para
"instalar siempre", incluso si el administrador solicita una actualización.
• yum remove PAQUETE elimina un paquete de software instalado, incluidos los compatibles
paquetes.
yum remove eliminará los paquetes enumerados y cualquier paquete que requiera que se
eliminen (y los paquetes que requieren esos paquetes, etc.). Esto puede llevar a la eliminación
inesperada de paquetes, por lo que debe verificar cuidadosamente la lista de paquetes que se
eliminarán.
• yum también tiene el concepto de grupos, que son colecciones de software relacionado que
pueden ser instalados juntos para un propósito particular. En Red Hat Enterprise Linux 7, hay dos
tipos de grupos. Los grupos regulares son colecciones de paquetes. Los grupos de entorno son
colecciones de otros grupos que incluyen sus propios paquetes. Los paquetes o grupos
proporcionados por un grupo pueden ser obligatorios (deben estar instalados si el grupo es
instalado), predeterminados (normalmente se instalan si el grupo es instalado) u opcionales (no se
instalan cuando el grupo es seleccionado a menos que se solicite específicamente) .
Como la lista yum, el comando yum group list (o yum grouplist) mostrará los nombres de los
grupos instalados y disponibles. Algunos grupos normalmente se instalan a través de grupos de
entorno y están ocultos por defecto. Estos grupos ocultos también se pueden enumerar con el
comando oculto de la lista de grupos yum. Si se agrega la opción de ids, también se mostrará la ID
del grupo. Los grupos se pueden instalar, actualizar, eliminar y consultar por nombre o ID.
960067641
informes@atp.com.pe
www.atp.com.pe
65
Servidor de infraestructura
Servidor y archivo de impresión
Servidor web básico
Host de virtualización
Servidor con GUI
Grupos disponibles:
Administración de sistemas
Bibliotecas compatibles
Compatibilidad con legado de UNIX
Herramientas de Administración de sistemas
Herramientas de desarrollo
Herramientas de seguridad
Herramientas gráficas de Administración
Herramientas para consola de Internet.
Soporte científico
Soporte para tarjeta inteligente
Listo
La información sobre un grupo se muestra con el comando yum group info (o yum groupinfo).
Incluye una lista de nombres de paquete obligatorios, predeterminados y opcionales o ID de
grupo. Los nombres de paquetes o ID de grupo pueden tener un marcador delante de ellos.
MARCADOR SIGNIFICADO
= El paquete está instalado, fue instalado como parte del grupo.
+ El paquete no está instalado, se instalará si el grupo es instalado o actualizado.
- El paquete no está instalado, no se instalará si el grupo es instalado o actualizado.
Ninguno El paquete está instalado, pero no se instaló a través de un grupo.
• El comando yum group install (o yum groupinstall) instalará un grupo que instalará sus paquetes
obligatorios y predeterminados y los paquetes de los que depende.
Resumen de la transacción
===================================================================================
==
Instalar 11 Paquetes (+246 Paquetes dependientes)
960067641
informes@atp.com.pe
www.atp.com.pe
66
IMPORTANTE: El comportamiento de los grupos yum ha cambiado en Red Hat Enterprise Linux
7 de Red Hat Enterprise Linux 6 y versiones anteriores. En RHEL 7, los grupos se tratan como
objetos y se retraen por el sistema. Si un grupo instalado se actualiza y el repositorio de yum ha
agregado nuevos paquetes obligatorios o predeterminados al grupo, esos paquetes nuevos se
instalarán en la actualización.
RHEL 6 y anteriores consideran que se debe instalar un grupo si se han instalado todos sus
paquetes obligatorios; o si no tenía paquetes obligatorios, si se instalan paquetes predeterminados
u opcionales en el grupo. En RHEL 7, se considera que un grupo está instalado solo si se utilizó la
instalación de yum group para instalarlo. Un nuevo comando en RHEL 7, yum group mark install
GROUPNAME se puede utilizar para marcar un grupo como instalado, y los paquetes que faltan y
sus dependencias se instalarán en la próxima actualización.
Finalmente, RHEL 6 y anteriores no tenían la forma de dos palabras de los comandos del grupo
yum. En otras palabras, en RHEL 6 el comando yum grouplist existía, pero el comando equivalente
de RHEL 7 yum group list no.
• Se puede ver un resumen de las transacciones de instalación y eliminación con el historial de yum.
960067641
informes@atp.com.pe
www.atp.com.pe
67
TAREA COMANDO
Listar paquetes instalados y disponibles por nombre yum list [PATRÓN]
Listar grupos instalados y disponibles yum grouplist
Buscar una paquete por patrón yum search PATRÓN
Mostrar el detalle de un paquete yum info PAQUETE
Instalar un paquete yum install PAQUETE
Instalar un grupo de paquetes yum groupinstall “NOMBRE DE GRUPO”
Actualizar todos los paquetes yum update
Remover un paquete yum remove PAQUETE
Mostrar el historial de transacciones yum yum history
Los repositorios de terceros son directorios de archivos de paquetes de software proporcionados por
una fuente que no sea de Red Hat, a la que se puede acceder por yum desde un sitio web, servidor
FTP o sistema de archivos local. Los repositorios de Yum son utilizados por distribuidores de software
que no son de Red Hat, o por pequeñas colecciones de paquetes locales. (Por ejemplo, Adobe
proporciona parte de su software gratuito para Linux a través de un yum repositorio).
960067641
informes@atp.com.pe
www.atp.com.pe
68
La utilidad rpm es una herramienta de bajo nivel que puede obtener información sobre el contenido
de los paquetes y paquetes instalados. Obtiene su información de una base de datos local o de los
propios archivos del paquete.
• -q: Lista los nombres de los paquetes instalados y versiones; equivalente al comando yum list.
960067641
informes@atp.com.pe
www.atp.com.pe
69
• -q --scripts: Lista los scripts que serán ejecutados antes o después de que el paquete es instalado
o eliminado
if [ $1 -eq 1 ] ; then
# Initial installation
systemctl preset sshd.service sshd.socket >/dev/null 2>&1 || :
fi
preuninstall scriptlet (using /bin/sh):
960067641
informes@atp.com.pe
www.atp.com.pe
70
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
systemctl --no-reload disable sshd.service sshd.socket > /dev/null 2>&1 ||
:
systemctl stop sshd.service sshd.socket > /dev/null 2>&1 || :
fi
postuninstall scriptlet (using /bin/sh):
El comando yum localinstall [PAQUETE].rpm se puede usar para instalar archivos de paquete
directamente. Descarga automáticamente cualquier dependencia que tenga el paquete de cualquier
repositorio de yum configurado. Los paquetes normalmente están firmados digitalmente para
garantizar que sean legítimos; si el paquete no está firmado por una clave en la que confía su
sistema, será rechazado. La opción --nogpgcheck puede deshabilitar la comprobación de la firma si
está seguro de que el paquete es legítimo, si se instala un paquete con yum install En Red Hat
Enterprise Linux 7, la opción --nogpgcheck no es necesaria si un paquete está instalado con yum
localinstall.
TAREA COMANDO
Mostrar información acerca del paquete rpm -q -i NAME
Lista todos los archivos incluidos en el paquete rpm -q -l NAME
Lista los archivos de configuración del paquete rpm -q -c NAME
Lista los archivos de documentación del paquete rpm -q -d NAME
Muestra un resumen de las razones por la que una rpm -q --changelog NAME
nueva versión de paquete ha sido lanzado
Muestra los scripts incluidos dentro del paquete rpm -q --scripts NAME
960067641
informes@atp.com.pe
www.atp.com.pe
71
2. Deseamos instalar interfaz gráfica a nuestro equipo y lo queremos hacer de la forma mínima. Para
ello debemos instalar el grupo de paquetes llamado “Sistema X Window”. Realizar dicha instalación.
3. Instalar la herramienta de administración web llamada Webmin desde la página oficial del proyecto
a través del archivo rpm correspondiente utilizando la herramienta yum. Link de descarga:
https://prdownloads.sourceforge.net/webadmin/webmin-1.881-1.noarch.rpm
960067641
informes@atp.com.pe
www.atp.com.pe
72
Un sistema de archivos es una estructura organizada de archivos y directorios que contienen datos
que residen en un dispositivo de almacenamiento, como un disco físico o una partición. La jerarquía
del sistema de archivos discutida anteriormente ensambla todos los sistemas de archivos en un árbol
de directorios con una única raíz, el directorio /. La ventaja aquí es que la jerarquía existente se puede
ampliar en cualquier momento agregando un nuevo disco o partición que contenga un sistema de
archivos compatible para agregar espacio en el disco en cualquier parte del árbol del sistema de
archivos. El proceso de agregar un nuevo sistema de archivos al árbol de directorios existente se
llama montaje. El directorio donde se monta el nuevo sistema de archivos se conoce como punto de
montaje. Este es un concepto fundamentalmente diferente al utilizado en un sistema Microsoft
Windows, donde un nuevo sistema de archivos se presenta mediante una letra de unidad separada.
Los discos duros y los dispositivos de almacenamiento normalmente se dividen en particiones más
pequeñas. Una partición es una forma de compartimentar un disco. Se pueden formatear diferentes
partes de este con diferentes sistemas de archivos o se pueden usar para diferentes propósitos. Por
ejemplo, una partición podría contener directorios de inicio del usuario, mientras que otra podría
contener registros y datos del sistema. Si un usuario llena la partición del directorio de inicio con
datos, la partición del sistema aún puede tener espacio disponible. Colocar datos en dos sistemas de
archivos separados o en dos particiones separadas ayuda a planificar el almacenamiento de datos.
Los dispositivos de almacenamiento están representados por un tipo de archivo especial llamado
dispositivo de bloque. El dispositivo de bloque se almacena en el directorio /dev. En Red Hat
Enterprise Linux, el primer SCSI, PATA/SATA o USB, el disco duro detectado es /dev/sda, el segundo
es /dev/sdb, y así sucesivamente. Este nombre representa todo el disco. La primera partición primaria
en /dev/sda sería /dev/sda1, la segunda partición es /dev/sda2, y así sucesivamente.
NOTA: Existen excepciones en la nomenclatura de los dispositivos de bloque, por ejemplo para discos
virtuales podrían encontrarse dispositivos con nombres /dev/vdX.
Otra forma de organizar discos y particiones es con la administración de volúmenes lógicos (LVM).
Con LVM, uno o más dispositivos de bloques se pueden agregar a un grupo de almacenamiento
llamado grupo de volúmenes. El espacio en disco está disponible con uno o más volúmenes lógicos.
Un volumen lógico es el equivalente de una partición que reside en un disco físico. Tanto el grupo de
volúmenes como el volumen lógico tienen nombres asignados al momento de la creación. Para el
grupo de volúmenes, un directorio con el mismo nombre que el grupo de volúmenes existe en el
directorio /dev. Debajo de ese directorio, se ha creado un enlace simbólico con el mismo nombre que
960067641
informes@atp.com.pe
www.atp.com.pe
73
el volumen lógico. Por ejemplo, el archivo de dispositivo que representa el volumen milv en el grupo
mivg es /dev/mivg/milv.
Cabe señalar que LVM se basa en el controlador de kernel Device Mapper (DM). El enlace simbólico
anterior /dev/mivg/milv apunta al nodo del dispositivo de bloque /dev/dm. La asignación del número
es secuencial comenzando con cero (0). Existe otro enlace simbólico para cada volumen lógico en el
directorio /dev/mapper con el nombre /dev/mapper/mivg-milv. El acceso al volumen lógico
generalmente puede usar cualquiera de los nombres de enlace simbólicos coherentes y confiables, ya
que el nombre de /dev/dm-number puede variar con cada inicio.
Para obtener una descripción general de los puntos de montaje del sistema de archivos y la cantidad
de espacio libre disponible, ejecute el comando df. Cuando el comando df se ejecuta sin
argumentos, informará el espacio total en disco, el espacio en disco utilizado y el espacio libre en
disco en todos los sistemas de archivos normales montados. Informará sobre los sistemas locales y
remotos y sobre el porcentaje del espacio total en disco que se está utilizando.
[root@labrhel7 ~]# df
S.ficheros bloques de 1K Usados Disponibles Uso% Montado en
/dev/mapper/rhel-root 6277120 3094340 3182780 50% /
devtmpfs 239200 0 239200 0% /dev
tmpfs 250076 0 250076 0% /dev/shm
tmpfs 250076 4508 245568 2% /run
tmpfs 250076 0 250076 0% /sys/fs/cgroup
/dev/sda1 1038336 127036 911300 13% /boot
tmpfs 50016 0 50016 0% /run/user/0
El particionamiento en la máquina del servidor muestra un sistema de archivos real, que está montado
en /. Esto es común para máquinas virtuales. Los dispositivos tmpfs y devtmpfs son sistemas de
archivos en la memoria del sistema. Todos los archivos escritos en tmpfs o devtmpfs desaparecen
después del reinicio del sistema.
Para mejorar la legibilidad de los tamaños de salida, hay dos opciones diferentes legibles para el ser
humano: -h o - H. La diferencia entre estas dos opciones es que -h informará en KiB (210), MiB (220) o
GiB (230), mientras que la opción -H informará en unidades estándares KB (10 3), MB (106) o GB (109).
Los fabricantes de discos duros suelen usar unidades SI cuando anuncian sus productos.
Muestre un informe sobre los sistemas de archivos en la máquina del servidor con todas las unidades
convertidas en formato legible para los humanos.
[root@labrhel7 ~]# df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/mapper/rhel-root 6,0G 3,0G 3,1G 50% /
devtmpfs 234M 0 234M 0% /dev
tmpfs 245M 0 245M 0% /dev/shm
tmpfs 245M 4,5M 240M 2% /run
tmpfs 245M 0 245M 0% /sys/fs/cgroup
960067641
informes@atp.com.pe
www.atp.com.pe
74
Para obtener información más detallada sobre el espacio utilizado por un determinado árbol de
directorios, existe el comando du. El comando du tiene opciones -H y -H para convertir la salida a
formato legible para las personas. El comando du muestra el tamaño de todos los archivos en el árbol
de directorios actual recursivamente.
Un sistema de archivos que resida en un dispositivo SATA/PATA o SCSI debe montarse manualmente
para acceder a él. El comando mount permite que el usuario root monte manualmente un sistema de
archivos. El primer argumento del comando mount especifica el sistema de archivos a montar. El
segundo argumento especifica el directorio de destino donde el sistema de archivos estara disponible
después de montarlo. El directorio de destino se conoce como punto de montaje.
El comando mount visualiza el argumento del sistema de archivos de una de dos maneras diferentes:
• El archivo de dispositivo de la partición que contiene el sistema de archivos, que reside en /dev.
• El UUID, un identificador único universal del sistema de archivos.
NOTA: Siempre que no se vuelva a crear un sistema de archivos, el UUID se mantendrá igual. El
dispositivo de bloque puede cambiar; por ejemplo, si se cambia el orden de los dispositivos o si se
agregan dispositivos adicionales al sistema
El comando blkid ofrece una descripción general de las particiones existentes con un sistema de
archivos y el UUID del sistema de archivos, así como también el sistema de archivos utilizado para
formatear la partición.
960067641
informes@atp.com.pe
www.atp.com.pe
75
NOTA: Un sistema de archivos se puede montar en un directorio existente. El directorio /mnt existe
de forma predeterminada y proporciona un punto de entrada para los puntos de montaje. Se usa para
discos de montaje manual. Se recomienda crear un subdirectorio en /mnt y usar ese subdirectorio
como punto de montaje a menos que haya una razón para montar el sistema de archivos en otra
ubicación específica en la jerarquía del sistema de archivos.
Montar el sistema de archivos mediante una identificación única universal, o el UUID, del sistema de
archivos.
Si el directorio que actúa como punto de montaje no está vacío, los archivos que existen en ese
directorio no son accesibles siempre que un sistema de archivos esté montado allí. Todos los archivos
escritos en el directorio de punto de montaje terminan en el sistema de archivos montado allí.
Para desmontar un sistema de archivos, el comando umount espera el punto de montaje como
argumento.
Por ejemplo, si queremos desmontar la partición principal / esta fallará, debido a que esta siendo
usada.
Desmontar no es posible si un proceso accede al punto de montaje. Para que sea más exitoso, el
proceso debe detener el acceso al punto de montaje.
El comando lsof enumera todos los archivos abiertos y el proceso que accede a ellos en el directorio
proporcionado. Es útil identificar qué procesos actualmente impiden que el sistema de archivos se
desinstale con éxito.
Una vez que se identifican los procesos, se puede tomar una acción, como esperar a que se complete
el proceso o enviar una señal SIGTERM o SIGKILL al proceso. En este caso, es suficiente cambiar el
directorio de trabajo actual a un directorio fuera del punto de montaje.
960067641
informes@atp.com.pe
www.atp.com.pe
76
NOTA: Una causa común para que el sistema de archivos en el punto de montaje esté ocupado es si
el directorio de trabajo actual de un indicador de shell está debajo del punto de montaje activo. El
proceso de acceso al punto de montaje es bash. Cambiar a un directorio fuera del punto de montaje
permite que el dispositivo sea desmontado.
Los medios extraíbles, como dispositivos flash USB y unidades, se montan automáticamente en el
entorno de escritorio gráfico cuando están conectaods. El punto de montaje para el medio extraíble es
/run/media/<user>/<label>. El <usuario> es el usuario que inició sesión en el entorno gráfico. La
<etiqueta> es el nombre dado al sistema de archivos cuando se creó
Enlaces duros
Un enlace duro es una nueva entrada de directorio con una referencia a un archivo existente en el
sistema de archivos. Cada archivo en un sistema de archivos tiene un enlace fijo por defecto. Para
ahorrar espacio, en lugar de copiar, se puede crear un nuevo enlace fijo para referirse al mismo
archivo. Un nuevo enlace fijo necesita tener un nombre de archivo diferente, si se creó en el mismo
directorio que el enlace fijo existente, o si necesita residir en un directorio diferente. Todos los enlaces
duros que apuntan al mismo archivo tienen los mismos permisos, número de enlaces, propietarios de
usuarios/grupos, marcas de tiempo y contenido de archivos. Los enlaces duros que apuntan al mismo
contenido de archivo deben estar en el mismo sistema de archivos.
El ls -l muestra el recuento de enlaces duros después de los permisos y antes del propietario de un
archivo.
El comando ln crea nuevos enlaces duros a archivos existentes. El comando espera un archivo
existente como primer argumento, seguido de uno o más enlaces duros adicionales. Los enlaces duros
pueden residir en cualquier lugar, siempre que estén en el mismo sistema de archivos que el
existente. Después de crear un nuevo enlace, no hay forma de saber cuál de los enlaces duros
existentes es el original.
Incluso si el archivo original se elimina, el contenido del archivo seguirá estando disponible siempre
que exista al menos un enlace fijo.
960067641
informes@atp.com.pe
www.atp.com.pe
77
Todos los enlaces duros que hacen referencia al mismo archivo tienen los mismos permisos, número
de enlaces, titularidades de usuarios / grutas, marcas de tiempo y contenido de archivos. Si alguna de
esa información se cambia en un enlace fijo, todos los demás enlaces duros que apuntan al mismo
archivo mostrarán la nueva información como lo haremos.
Enlaces suaves
El comando ln -s crea un enlace suave, también conocido como enlace simbólico. Un enlace suave es
un tipo de archivo especial que apunta a un archivo o directorio existente. Los enlaces suaves pueden
apuntar a un archivo o directorio en otro sistema de archivos. A diferencia de un enlace fijo, un enlace
simbólico puede apuntar a un archivo en un sistema de archivos diferente.
Cuando se elimina el archivo original, el enlace suave sigue apuntando al archivo, pero el objetivo se
ha ido. Un enlace suave que apunta a un archivo faltante se denomina "enlace suave colgante".
Un enlace suave puede apuntar a un directorio. El enlace suave entonces actúa como un directorio.
Cambiar al directorio de enlaces suaves con cd funciona como se espera.
Un administrador del sistema necesita herramientas para buscar archivos que coincidan con ciertos
criterios en el sistema de archivos. Esta sección trata sobre dos comandos que pueden buscar
archivos en el sistema de archivos. El comando locate busca en una base de datos pregenerada los
960067641
informes@atp.com.pe
www.atp.com.pe
78
nombres de archivo o rutas de archivos y devuelve los resultados al instante. El comando find busca
en el sistema de archivos en tiempo real rastreando el sistema de archivos.
• Buscar archivos con la palabra "passwd" en el nombre o la ruta en el directorio árboles legibles por
el usuario actual.
• Los resultados se devuelven incluso cuando el nombre o la ruta del archivo coinciden solo
parcialmente con la consulta de búsqueda
• La opción -n limita el número de resultados de búsqueda devueltos por locate. El siguiente ejemplo
limita los resultados de búsqueda devueltos por locate a las primeras cinco coincidencias.
NOTA: La base de datos de localización se actualiza automáticamente todos los días. El usuario raíz
puede realizar una actualización de la base de datos con el comando updatedb.
960067641
informes@atp.com.pe
www.atp.com.pe
79
El comando find realiza una búsqueda en tiempo real en los sistemas de archivos locales para
encontrar archivos que coincidan con los criterios de los argumentos brindados. El comando find está
buscando archivos en el sistema de archivos con los permisos del usuario que lo invoca. El usuario
que invoca el comando find debe tener permiso de lectura y ejecución en un directorio para examinar
su contenido. El primer argumento para el comando find es el directorio para buscar. Si se omite el
argumento del directorio, find iniciará la búsqueda en el directorio actual y buscará coincidencias en
cualquiera de los subdirectorios.
NOTA: El comando find tiene una gran cantidad de opciones que se pueden proporcionar para
describir exactamente qué tipo de archivo se debe encontrar. Las búsquedas pueden basarse en el
nombre del archivo, el tamaño del archivo, la última marca de tiempo modificada (timestamp) y otras
características del archivo en cualquier combinación.
• La opción -name seguida de un nombre de archivo busca filiales que coincidan con el nombre del
archivo dado y devuelve todas las coincidencias exactas. Para buscar archivos llamados
sshd_config en el directorio / y todo los subdirectorios en el servidor.
• Los comodines están disponibles para buscar un nombre de archivo y devolver todos los
resultados que son una coincidencia parcial. Cuando se utilizan comodines, es importante citar el
nombre del archivo para evitar que el terminal interprete el comodín. El siguiente ejemplo busca
archivos en el directorio / en el servidor que termina en .txt.
[root@labrhel7 ~]# find / -name '*.txt'
/etc/pki/nssdb/pkcs11.txt
/usr/lib/python2.7/site-packages/decorator-3.4.0-py2.7.egg-info/SOURCES.txt
/usr/lib/python2.7/site-packages/decorator-3.4.0-py2.7.egg-
info/dependency_links.txt
/usr/lib/python2.7/site-packages/decorator-3.4.0-py2.7.egg-info/top_level.txt
…
• Para buscar archivos en /etc/ que contengan la palabra pass en cualquier lugar de sus nombres en
el servidor.
960067641
informes@atp.com.pe
www.atp.com.pe
80
• Para realizar una búsqueda insensible a mayúsculas o minúsculas para un nombre de archivo
dado, use la opción -iname, seguida del nombre del archivo para buscar. Para buscar sin tener en
cuenta los archivos que tienen mensajes en sus nombres en el directorio / en el servidor.
• El comando find puede buscar archivos según su propiedad o permisos. Las opciones útiles al
buscar por propietario son -user y -group, que buscan por nombre, y -uid y -gid, que buscan por
ID. Buscar archivos propiedad del usuario chrony en el directorio / del servidor.
• Para hacer coincidir los archivos para los cuales el usuario tiene permisos de lectura y escritura, el
grupo tiene al menos permisos de lectura, u otros tienen al menos acceso de escritura.
• El comando find puede buscar archivos que coincidan con un tamaño especificado con la opción -
size, seguido de un valor numérico y la unidad. Las unidades que se utilizarán con la opción -size
son.
960067641
informes@atp.com.pe
www.atp.com.pe
81
o k, para kilobyte
o M, para megabyte
o G, para gigabyte
NOTA: Los modificadores de la unidad de tamaño redondean todo hasta unidades individuales. Por
ejemplo, find -size 1M mostrará archivos menores a 1MB porque redondea todos los archivos hasta
1MB.
La opción -mmin, seguida del tiempo en minutos, busca todos los archivos los cuales fueron
modificado.
• Para encontrar todos los archivos que fueron modificados hace exactamente 10 minutos.
• El modificador + delante de la cantidad de minutos busca todos los archivos en / que se han
modificado hace más de 200 minutos.
• El modificador - cambia la búsqueda para buscar todos los archivos en el directorio / que han sido
cambiados hace menos de 150 minutos.
o f, para archivos.
o d, para directorios.
o l, para links simbólicos.
o b, para dispositivos.
960067641
informes@atp.com.pe
www.atp.com.pe
82
La opción - links seguida por un número busca todos los archivos que tienen un cierto núumero de
enlaces duros. El número puede ir precedido por un modificador + para buscar archivos con un
recuento mayor que el recuento de enlaces duros dado. Si el número está precedido por un
modificador -, la búsqueda se limita a todos los archivos con un conteo de enlaces duros que es
menor que el número dado.
960067641
informes@atp.com.pe
www.atp.com.pe
83
1. Generar un reporte de uso de disco mediante el comando du del contenido de la carpeta /var y
guardar el resultado en el archivo /tmp/resultado.
5. Encuentrar todos los enlaces suaves en el servidor que tengan atp como parte de su nombre(usar
el comando find).
6. Crear el archivo /tmp/prueba_linux, intentar ubicar dicho archivo mediante el comando locate ¿Por
qué no figura como resultado? Corregir dicho comportamiento para lograr encontrarlo mediante el
comando locate.
960067641
informes@atp.com.pe
www.atp.com.pe