rhel05 - gpulido-redhat/workshopclaro Wiki

4. Compresión de archivos y búsquedas.

Meta:

Objetivos:

Secciones:

Laboratorio:

Describiendo la herramienta de compresión tar. (Teoría - Demostración)

Objetivos: Después de completar esta sección el estudiante estará preparado para:

Compresión de archivos TAR (Teoría - Demostración).

tar1 Tar es una herramienta de línea de comando utilizada para crear y manipular archivos de almacenamiento en sistemas Linux y Unix.

El siguiente cuadro referencial indica en resumen de las opciones y funciones de tar.

Opción Descripción
-c, --create Crea un nuevo archivo.
-x, --extract Extrae de un archivo existente.
-t, --list Lista la tabla de contenido de un archivo.
-v, --verbose Muestra que archivos son archivados o extraidos
-f, --file= Nombre del archivo.
-p, --preserve-permissions Preserva los permisos de los archivos cuando estos son extraidos.
-z, --gzip Usa gzip para compresion (.tar.gz).
-j, --bzip2 Usa bzip2 para compresion (.tar.bz2).
-J, --xz Usa xz para compresion (.tar.xz).

Ejemplos .tar Crear archivo .tar

[[email protected] ~]# tar -cvf etc.tar /etc
[[email protected] ~]# ls -l /root/etc.tar

Listar archivo .tar

[[email protected] ~]# tar -tvf /root/etc.tar

Extraer archivo .tar

[[email protected] ~]# tar -xvf etc.tar

Ejemplo .tar.gz Crear archivo .tar.gz

[[email protected] ~]# tar -zcvf etc.tar.gz /etc
[[email protected] ~]# ls -l /root/etc.tar.gz

Listar archivo .tar.gz

[[email protected] ~]# tar -tvf /root/etc.tar.gz

Extraer archivo .tar.gz

[[email protected] ~]# tar -zxvf etc.tar.gz

Ejemplos .tar.bz2 NOTA:Validar que el paquete bzip2 este instalado Crear archivo .tar.bz2

[[email protected] ~]# tar -jcvf etc.tar.bz2 /etc
[[email protected] ~]# ls -l /root/etc.tar.bz2

Listar archivo .tar.bz2

[[email protected] ~]# tar -tvf /root/etc.tar.bz2

Extraer archivo .tar.bz2

[[email protected] ~]# tar -jxvf etc.tar.gz

Ejemplos .tar.xz Crear archivo .tar.xz

[[email protected] ~]# tar -Jcvf etc.tar.xz /etc
[[email protected] ~]# ls -l /root/etc.tar.xz

Listar archivo .tar.xz

[[email protected] ~]# tar -tvf /root/etc.tar.xz

Extraer archivo .tar.xz

[[email protected] ~]# tar -Jxvf etc.tar.xz

Verificar los pesos para determinar cual tiene mejor compresion

[[email protected] ~]# du -sh etc.*
21M     etc.tar
3.6M    etc.tar.bz2
5.0M    etc.tar.gz
3.1M    etc.tar.xz

Instalando sosreport para recolectar datos para soporte

[[email protected] ~]# yum install sos -y
[[email protected] ~]# sosreport

sosreport (version 3.8)

This command will collect diagnostic and configuration information from
this Red Hat Enterprise Linux system and installed applications.

An archive containing the collected information will be generated in
/var/tmp/sos.kh8e48bc and may be provided to a Red Hat support
representative.

Any information provided to Red Hat will be treated in accordance with
the published support policies at:

  https://access.redhat.com/support/

The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.

No changes will be made to system configuration.

Press ENTER to continue, or CTRL-C to quit.

Please enter the case id that you are generating this report for []: 100203040

 Setting up archive ...
 Setting up plugins ...
[plugin:networking] skipped command 'ip -s macsec show': required kernel modules or services not present (kmods=[macsec] services=[]). Use '--allow-system-changes' to enable collection.
[plugin:networking] skipped command 'ss -peaonmi': required kernel modules or services not present (kmods=[tcp_diag,udp_diag,inet_diag,unix_diag,netlink_diag,af_packet_diag] services=[]). Use '--allow-system-changes' to enable collection.
 Running plugins. Please wait ...

  Finishing plugins              [Running: yum]                                           ]
  Finished running plugins
Creating compressed archive...

Your sosreport has been generated and saved in:
  /var/tmp/sosreport-nova-100203040-2020-08-24-whaaabp.tar.xz

The checksum is: e51bed0ebdbc593f2dc1802bc336bcb7

Please send this file to your support representative.

Describiendo las opciones de búsqueda de archivos. (Teoría - Demostración)

Objetivos: Después de completar esta sección el estudiante estará preparado para:

Búsquedas con locate y find (Teoría - Demostración).

tar1

locate, es un utilitario que permite hacer búsquedas rápidas dentro del sistema operativo. Para utilizar locate debemos tener instalado el paquete mlocate.

[[email protected] ~]# yum install -y mlocate
[[email protected] ~]# updatedb
[[email protected] ~]# locate sshd_config
/etc/ssh/sshd_config
/root/etc/ssh/sshd_config
/usr/share/man/man5/sshd_config.5.gz

Con la opcion -i podemos ignorar el case-sensitive

[[email protected] ~]# locate -i message
...
/usr/share/vim/vim80/lang/zh_TW.UTF-8/LC_MESSAGES
/usr/share/vim/vim80/lang/zh_TW.UTF-8/LC_MESSAGES/vim.mo
/usr/share/vim/vim80/syntax/messages.vim
/usr/share/vim/vim80/syntax/msmessages.vim

find, es un utilitario que permite hacer búsquedas avanzadas dentro del sistema operativo. Su estructura es: find <startingdirectory> <options> <search term>

Ejemplos: Búsqueda en directorios específicos en tiempo real

[[email protected] ~]# find /etc -name sshd_config
/etc/ssh/sshd_config

Ingorar case-sensitive

[[email protected] ~]# find / -iname message
/var/log/MESSAGE
/usr/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/message
/usr/share/mime/message

Busqueda basada en propietario user

[[email protected] ~]# find / -user nova 2> /dev/null
/var/spool/mail/nova
/home/nova
/home/nova/.bash_logout
/home/nova/.bash_profile
/home/nova/.bashrc

group

[[email protected] ~]# find / -group nova 2> /dev/null
/home/nova
/home/nova/.bash_logout
/home/nova/.bash_profile
/home/nova/.bashrc

uid

[[email protected] ~]# find / -uid 1000 2> /dev/null
/var/spool/mail/nova
/home/nova
/home/nova/.bash_logout
/home/nova/.bash_profile
/home/nova/.bashrc

gid

[[email protected] ~]# find / -gid 1000 2> /dev/null
/home/nova
/home/nova/.bash_logout
/home/nova/.bash_profile
/home/nova/.bashrc

user and group

[[email protected] ~]# find / -user root -group mail 2> /dev/null

Busquedas basadas en permisos perm

[[email protected] ~]# find /root/find -perm 600
/root/find/file600
[[email protected] find]# ls -l /root/find/file600
-rw-------. 1 root root 0 Aug 24 02:16 /root/find/file600
[[email protected] ~]# find /root/find -perm -644
/root/find
/root/find/file644
/root/find/file664
[[email protected] find]# ls -l
total 0
-rw-------. 1 root root 0 Aug 24 02:16 file600
-rw-r--r--. 1 root root 0 Aug 24 02:16 file644
-rw-rw-r--. 1 root root 0 Aug 24 02:17 file664
[[email protected] find]# ls -ld /root/find/
drwxr-xr-x. 2 root root 51 Aug 24 02:20 /root/find/
[[email protected] ~]# find /root/find -perm /004
/root/find
/root/find/file644
/root/find/file664
[[email protected] find]# ls -ld /root/find/
drwxr-xr-x. 2 root root 51 Aug 24 02:20 /root/find/

Busquedas basadas en tamaño size

[[email protected] ~]# dd if=/dev/urandom of=/root/find/size10M bs=1M count=10
[[email protected] ~]# find /root/find -size 10M
/root/find/size10M
[[email protected] ~]# find /root/find -size -10M
/root/find
/root/find/file600
/root/find/file644
/root/find/file664
[[email protected] ~]# find /root/find -size +10M
[[email protected] ~]#

Busquedas basadas en minutos mmin

[[email protected] ~]# find / -mmin 60
[[email protected] ~]# find / -mmin -60
[[email protected] ~]# find / -mmin +60

Busquedas basadas en tipo f - file

[[email protected] find]# find /etc -name sshd -type f
/etc/pam.d/sshd
/etc/sysconfig/sshd

d - directory

[[email protected] find]# find /etc -name ssh -type d
/etc/ssh

b - bloque

[[email protected] find]# find /dev -type b
/dev/sda2
/dev/sda1
/dev/sda

Laboratorio: Explorando el sistema de archivos linux

En el siguiente laboratorio tendrá que realizar las siguientes operaciones:

  1. Ubicar archivos que tengan la palabra sshd en todo el sistema.
  2. Ubicar archivos que tengan la palabra networkmanager.conf y que ignoren el case-sensitive.
  3. Ubicar dentro de /dev los dispositivos de tipo bloque.
  4. Ubicar los archivos que le pertenecen al usuario nova.
  5. Ubicar en /etc los archivos que tengan la extensión .repo.
  6. Crear un respaldo con tar del directorio /etc el formato de compresión utilizado sera xz. El respaldo deberá ser guardado en /root.
  7. Crear un sosreport para atención del caso de soporte 1000203040. Una vez creado desempaquetar e inspeccionar.

Solución:

  1. Ubicar archivos que tengan la palabra sshd en todo el sistema.
[[email protected] find]# locate sshd
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/etc/systemd/system/multi-user.target.wants/sshd.service
/usr/lib/systemd/system/sshd-keygen.target
/usr/lib/systemd/system/[email protected]
/usr/lib/systemd/system/sshd.service
/usr/lib/systemd/system/sshd.socket
/usr/lib/systemd/system/[email protected]
/usr/lib64/fipscheck/sshd.hmac
/usr/libexec/openssh/sshd-keygen
/usr/sbin/sshd
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sshd.8.gz
/usr/share/vim/vim80/syntax/sshdconfig.vim
/var/empty/sshd 
  1. Ubicar archivos que tengan la palabra networkmanager.conf y que ignoren el case-sensitive.
[[email protected] find]# locate -i networkmanager.conf
/etc/NetworkManager/NetworkManager.conf
/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf
/usr/share/man/man5/NetworkManager.conf.5.gz
  1. Ubicar dentro de /dev los dispositivos de tipo bloque.
[[email protected] find]# find /dev -type b
/dev/loop0
/dev/dm-1
/dev/dm-0
/dev/sr0
/dev/sda2
/dev/sda1
/dev/sda
  1. Ubicar los archivos que le pertenecen al usuario nova.
[[email protected] find]# find / -user nova 2> /dev/null
/var/spool/mail/nova
/home/nova
/home/nova/.bash_logout
/home/nova/.bash_profile
/home/nova/.bashrc 
  1. Ubicar en /etc los archivos que tengan la extensión .repo.
[[email protected] ~]# find /etc -name *.repo
/etc/yum.repos.d/redhat.repo
/etc/yum.repos.d/rhel82.repo
  1. Crear un respaldo con tar del directorio /etc el formato de compresión utilizado sera xz. El respaldo deberá ser guardado en /root.
[[email protected] ~]# tar -Jcvf /root/etc.tar.xz /etc
  1. Crear un sosreport para atención del caso de soporte 1000203040. Una vez creado desempaquetar e inspeccionar.
[[email protected] tmp]# sosreport

sosreport (version 3.8)

This command will collect diagnostic and configuration information from
this Red Hat Enterprise Linux system and installed applications.

An archive containing the collected information will be generated in
/var/tmp/sos.hgmmj0x2 and may be provided to a Red Hat support
representative.

Any information provided to Red Hat will be treated in accordance with
the published support policies at:

  https://access.redhat.com/support/

The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.

No changes will be made to system configuration.

Press ENTER to continue, or CTRL-C to quit.

Please enter the case id that you are generating this report for []: 1000203040
...
[[email protected] tmp]# cd /var/tmp
[[email protected] tmp]# tar -Jxvf sosreport-nova-1000203040-2020-08-25-evmdnig.tar.xz
[[email protected] tmp]# cd sosreport-nova-1000203040-2020-08-25-evmdnig